Browse Source

Fixed nil err in isempty record 2

worker-9 4 years ago
parent
commit
736bcc3e55
2 changed files with 23 additions and 2 deletions
  1. 2 2
      controllers/networkHttpController.go
  2. 21 0
      functions/helpers.go

+ 2 - 2
controllers/networkHttpController.go

@@ -354,8 +354,8 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) {
 }
 
 func DeleteNetwork(network string) error {
-	_, err := database.FetchRecords(database.NODES_TABLE_NAME)
-	if database.IsEmptyRecord(err) {
+	nodeCount, err := functions.GetNetworkNodeCount(network)
+	if nodeCount == 0 || database.IsEmptyRecord(err) {
 		return database.DeleteRecord(database.NETWORKS_TABLE_NAME, network)
 	}
 	return errors.New("node check failed. All nodes must be deleted before deleting network")

+ 21 - 0
functions/helpers.go

@@ -323,6 +323,27 @@ func IsMacAddressUnique(macaddress string, networkName string) (bool, error) {
 	return true, nil
 }
 
+func GetNetworkNodeCount(networkName string) (int, error) {
+
+	collection, err := database.FetchRecords(database.NODES_TABLE_NAME)
+	count := 0
+	if err != nil && !database.IsEmptyRecord(err) {
+		return count, err
+	}
+	for _, value := range collection {
+		var node models.Node
+		if err = json.Unmarshal([]byte(value), &node); err != nil {
+			return count, err
+		} else {
+			if node.Network == networkName {
+				count++
+			}
+		}
+	}
+
+	return count, nil
+}
+
 //Checks to see if access key is valid
 //Does so by checking against all keys and seeing if any have the same value
 //may want to hash values before comparing...consider this