changed public id format to be 128 bit length.
This commit is contained in:
1 parent
78d50d9a6d
commit
d2cf9d7498
11 files changed
+187
-22
No files matched your search
@@ -1,10 +1,17 @@
|
||||
package doormen
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/didiercrunch/doormanserver/shared"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
type doormanValue struct {
|
||||
Name string
|
||||
Probability string
|
||||
}
|
||||
|
||||
func (val *DoormanValue) GetBSON() (interface{}, error) {
|
||||
ret := &doormanValue{val.Name, ""}
|
||||
txt, err := val.Probability.MarshalText()
|
||||
@@ -24,3 +31,60 @@ func (val *DoormanValue) SetBSON(raw bson.Raw) error {
|
||||
val.Probability = new(big.Rat)
|
||||
return val.Probability.UnmarshalText([]byte(v.Probability))
|
||||
}
|
||||
|
||||
type jsonDoormanDefinition struct {
|
||||
Id string `json:"id,omitempty"`
|
||||
Name string `json:"name"`
|
||||
Values []*DoormanValue `json:"values"`
|
||||
OwnerEmails []string `json:"emails"`
|
||||
}
|
||||
|
||||
func (dm *DoormanDefinition) MarshalJSON() ([]byte, error) {
|
||||
jdm := new(jsonDoormanDefinition)
|
||||
jdm.Name = dm.Name
|
||||
jdm.OwnerEmails = dm.OwnerEmails
|
||||
jdm.Values = dm.Values
|
||||
jdm.Id = shared.ObjectIdToPublicId(dm.Id)
|
||||
return json.Marshal(jdm)
|
||||
}
|
||||
|
||||
func (dm *DoormanDefinition) UnmarshalJSON(data []byte) error {
|
||||
jsm := new(jsonDoormanDefinition)
|
||||
var err error
|
||||
if err = json.Unmarshal(data, jsm); err != nil {
|
||||
return err
|
||||
}
|
||||
if dm.Id, err = shared.PublicIdToObjectId(jsm.Id); err != nil {
|
||||
return err
|
||||
}
|
||||
dm.Name = jsm.Name
|
||||
dm.Values = jsm.Values
|
||||
dm.OwnerEmails = jsm.OwnerEmails
|
||||
return nil
|
||||
}
|
||||
|
||||
type jsonDoormanId struct {
|
||||
Name string `json:"name"`
|
||||
Id string `json:"id"`
|
||||
}
|
||||
|
||||
func (did *DoormanId) MarshalJSON() ([]byte, error) {
|
||||
jdid := new(jsonDoormanId)
|
||||
jdid.Name = did.Name
|
||||
jdid.Id = shared.ObjectIdToPublicId(did.Id)
|
||||
return json.Marshal(jdid)
|
||||
|
||||
}
|
||||
|
||||
func (did *DoormanId) UnmarshalJSON(data []byte) error {
|
||||
jdid := new(jsonDoormanId)
|
||||
if err := json.Unmarshal(data, jdid); err != nil {
|
||||
return err
|
||||
}
|
||||
var err error
|
||||
if did.Id, err = shared.PublicIdToObjectId(jdid.Id); err != nil {
|
||||
return err
|
||||
}
|
||||
did.Name = jdid.Name
|
||||
return nil
|
||||
}
|
||||
Reference in new issue
Block a user