turning validation back on and changing response message.

This commit is contained in:
afeiszli
2021-04-14 23:39:39 -04:00
parent b33f971706
commit 77914d22b0
3 changed files with 44 additions and 20 deletions

View File

@@ -300,11 +300,7 @@ func CreateNode(node models.Node, networkName string) (models.Node, error) {
//until one is open and then returns it //until one is open and then returns it
node.Address, err = functions.UniqueAddress(networkName) node.Address, err = functions.UniqueAddress(networkName)
if err != nil {/* if err != nil {
errorResponse := models.ErrorResponse{
Code: http.StatusInternalServerError, Message: "W1R3: Encountered an internal error! ",
}*/
//returnErrorResponse(w, r, errorResponse)
return node, err return node, err
} }

View File

@@ -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() v := validator.New()
@@ -112,23 +144,19 @@ func validateNetwork(operation string, network models.Network) error {
}) })
_ = v.RegisterValidation("localrange_valid", func(fl validator.FieldLevel) bool { _ = 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 return isvalid
}) })
_ = v.RegisterValidation("netid_valid", func(fl validator.FieldLevel) bool { _ = v.RegisterValidation("netid_valid", func(fl validator.FieldLevel) bool {
isFieldUnique := false isFieldUnique, _ := functions.IsNetworkNameUnique(fl.Field().String())
inCharSet := false inCharSet := functions.NameInNetworkCharSet(fl.Field().String())
if operation == "update" { isFieldUnique = true } else{
isFieldUnique, _ = functions.IsNetworkNameUnique(fl.Field().String())
inCharSet = functions.NameInNetworkCharSet(fl.Field().String())
}
return isFieldUnique && inCharSet return isFieldUnique && inCharSet
}) })
_ = v.RegisterValidation("displayname_unique", func(fl validator.FieldLevel) bool { _ = v.RegisterValidation("displayname_unique", func(fl validator.FieldLevel) bool {
isFieldUnique, _ := functions.IsNetworkDisplayNameUnique(fl.Field().String()) isFieldUnique, _ := functions.IsNetworkDisplayNameUnique(fl.Field().String())
return isFieldUnique || operation == "update" return isFieldUnique
}) })
err := v.Struct(network) 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 { if err != nil {
returnErrorResponse(w,r,formatError(err, "internal")) returnErrorResponse(w,r,formatError(err, "badrequest"))
return return
} }
@@ -475,9 +503,9 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
network.IsLocal = &falsevar network.IsLocal = &falsevar
} }
//err = validateNetwork("create", network) err = validateNetworkCreate(network)
if err != nil { if err != nil {
returnErrorResponse(w,r,formatError(err, "internal")) returnErrorResponse(w,r,formatError(err, "badrequest"))
return return
} }
network.SetDefaults() network.SetDefaults()

View File

@@ -500,7 +500,7 @@ func createNode(w http.ResponseWriter, r *http.Request) {
err = ValidateNode("create", networkName, node) err = ValidateNode("create", networkName, node)
if err != nil { if err != nil {
returnErrorResponse(w,r,formatError(err, "internal")) returnErrorResponse(w,r,formatError(err, "badrequest"))
return return
} }
@@ -746,7 +746,7 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
err = ValidateNode("update", params["network"], nodechange) err = ValidateNode("update", params["network"], nodechange)
if err != nil { if err != nil {
returnErrorResponse(w,r,formatError(err, "internal")) returnErrorResponse(w,r,formatError(err, "badrequest"))
return return
} }