diff --git a/functions/helpers.go b/functions/helpers.go index 054102ab..cf11ef6e 100644 --- a/functions/helpers.go +++ b/functions/helpers.go @@ -300,7 +300,7 @@ func IsNetworkDisplayNameUnique(name string) (bool, error) { dbs, err := models.GetNetworks() if err != nil { - return false, err + return database.IsEmptyRecord(err), err } for i := 0; i < len(dbs); i++ { @@ -315,19 +315,9 @@ func IsNetworkDisplayNameUnique(name string) (bool, error) { func IsMacAddressUnique(macaddress string, networkName string) (bool, error) { - collection, err := database.FetchRecords(database.NODES_TABLE_NAME) + _, err := database.FetchRecord(database.NODES_TABLE_NAME, macaddress+"###"+networkName) if err != nil { - return false, err - } - for _, value := range collection { - var node models.Node - if err = json.Unmarshal([]byte(value), &node); err != nil { - return false, err - } else { - if node.MacAddress == macaddress && node.Network == networkName { - return false, nil - } - } + return database.IsEmptyRecord(err), err } return true, nil diff --git a/models/node.go b/models/node.go index ebe97e05..e2e86ef2 100644 --- a/models/node.go +++ b/models/node.go @@ -68,6 +68,18 @@ type Node struct { IPForwarding string `json:"ipforwarding" bson:"ipforwarding" yaml:"ipforwarding" validate:"checkyesorno"` } +func (node *Node) SetRoamingDefault() { + if node.Roaming == "" { + node.Roaming = "no" + } +} + +func (node *Node) SetPullChangesDefault() { + if node.PullChanges == "" { + node.PullChanges = "no" + } +} + func (node *Node) SetIPForwardingDefault() { if node.IPForwarding == "" { node.IPForwarding = "no" @@ -380,11 +392,8 @@ func (node *Node) Validate(isUpdate bool) error { } func (node *Node) IsIDUnique() (bool, error) { - record, err := database.FetchRecord(database.NODES_TABLE_NAME, node.ID) - if err != nil { - return false, err - } - return record == "", err + _, err := database.FetchRecord(database.NODES_TABLE_NAME, node.ID) + return database.IsEmptyRecord(err), err } func (node *Node) NameInNodeCharSet() bool {