From 77914d22b002aa29ce0e332964de475a3f994b09 Mon Sep 17 00:00:00 2001 From: afeiszli Date: Wed, 14 Apr 2021 23:39:39 -0400 Subject: [PATCH] turning validation back on and changing response message. --- controllers/common.go | 6 +--- controllers/networkHttpController.go | 54 +++++++++++++++++++++------- controllers/nodeHttpController.go | 4 +-- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/controllers/common.go b/controllers/common.go index dca70f62..ffa830c6 100644 --- a/controllers/common.go +++ b/controllers/common.go @@ -300,11 +300,7 @@ func CreateNode(node models.Node, networkName string) (models.Node, error) { //until one is open and then returns it node.Address, err = functions.UniqueAddress(networkName) - if err != nil {/* - errorResponse := models.ErrorResponse{ - Code: http.StatusInternalServerError, Message: "W1R3: Encountered an internal error! ", - }*/ - //returnErrorResponse(w, r, errorResponse) + if err != nil { return node, err } diff --git a/controllers/networkHttpController.go b/controllers/networkHttpController.go index a3e3cca1..fa470ad0 100644 --- a/controllers/networkHttpController.go +++ b/controllers/networkHttpController.go @@ -102,7 +102,39 @@ func getNetworks(w http.ResponseWriter, r *http.Request) { } } -func validateNetwork(operation string, network models.Network) error { +func validateNetworkUpdate(network models.Network) error { + + v := validator.New() + + _ = v.RegisterValidation("addressrange_valid", func(fl validator.FieldLevel) bool { + isvalid := fl.Field().String() == "" || functions.IsIpv4CIDR(fl.Field().String()) + return isvalid + }) + + _ = v.RegisterValidation("localrange_valid", func(fl validator.FieldLevel) bool { + isvalid := fl.Field().String() == "" || functions.IsIpv4CIDR(fl.Field().String()) + return isvalid + }) + + _ = v.RegisterValidation("netid_valid", func(fl validator.FieldLevel) bool { + return true + }) + + _ = v.RegisterValidation("displayname_unique", func(fl validator.FieldLevel) bool { + return true + }) + + err := v.Struct(network) + + if err != nil { + for _, e := range err.(validator.ValidationErrors) { + fmt.Println(e) + } + } + return err +} + +func validateNetworkCreate(network models.Network) error { v := validator.New() @@ -112,23 +144,19 @@ func validateNetwork(operation string, network models.Network) error { }) _ = v.RegisterValidation("localrange_valid", func(fl validator.FieldLevel) bool { - isvalid := !*network.IsLocal || functions.IsIpv4CIDR(fl.Field().String()) + isvalid := fl.Field().String() == "" || functions.IsIpv4CIDR(fl.Field().String()) return isvalid }) _ = v.RegisterValidation("netid_valid", func(fl validator.FieldLevel) bool { - isFieldUnique := false - inCharSet := false - if operation == "update" { isFieldUnique = true } else{ - isFieldUnique, _ = functions.IsNetworkNameUnique(fl.Field().String()) - inCharSet = functions.NameInNetworkCharSet(fl.Field().String()) - } + isFieldUnique, _ := functions.IsNetworkNameUnique(fl.Field().String()) + inCharSet := functions.NameInNetworkCharSet(fl.Field().String()) return isFieldUnique && inCharSet }) _ = v.RegisterValidation("displayname_unique", func(fl validator.FieldLevel) bool { isFieldUnique, _ := functions.IsNetworkDisplayNameUnique(fl.Field().String()) - return isFieldUnique || operation == "update" + return isFieldUnique }) err := v.Struct(network) @@ -281,9 +309,9 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) { } - //err = validateNetwork("update", networkChange) + err = validateNetworkUpdate(networkChange) if err != nil { - returnErrorResponse(w,r,formatError(err, "internal")) + returnErrorResponse(w,r,formatError(err, "badrequest")) return } @@ -475,9 +503,9 @@ func createNetwork(w http.ResponseWriter, r *http.Request) { network.IsLocal = &falsevar } - //err = validateNetwork("create", network) + err = validateNetworkCreate(network) if err != nil { - returnErrorResponse(w,r,formatError(err, "internal")) + returnErrorResponse(w,r,formatError(err, "badrequest")) return } network.SetDefaults() diff --git a/controllers/nodeHttpController.go b/controllers/nodeHttpController.go index 9b2e551c..2e6af791 100644 --- a/controllers/nodeHttpController.go +++ b/controllers/nodeHttpController.go @@ -500,7 +500,7 @@ func createNode(w http.ResponseWriter, r *http.Request) { err = ValidateNode("create", networkName, node) if err != nil { - returnErrorResponse(w,r,formatError(err, "internal")) + returnErrorResponse(w,r,formatError(err, "badrequest")) return } @@ -746,7 +746,7 @@ func updateNode(w http.ResponseWriter, r *http.Request) { err = ValidateNode("update", params["network"], nodechange) if err != nil { - returnErrorResponse(w,r,formatError(err, "internal")) + returnErrorResponse(w,r,formatError(err, "badrequest")) return }