server/admin/validate.go
Rama master · réplica de lectura del repositorio original.
package admin
import "github.com/shellhub-io/shellhub/pkg/validator"
func validateInput(input any) error {
v := validator.New()
ok, fields, err := v.StructWithFields(input)
if !ok || err != nil {
return mapValidationError(fields)
}
return nil
}
func mapValidationError(fields map[string]any) error {
for _, field := range []string{"Username", "Owner", "Password", "Email", "Namespace", "TenantID", "Type", "MaxDevices"} {
if _, ok := fields[field]; !ok {
continue
}
switch field {
case "Username", "Owner":
return ErrInvalidUsername
case "Password":
return ErrInvalidPassword
case "Email":
return ErrInvalidEmail
case "Namespace":
return ErrInvalidNamespace
case "Type":
return ErrInvalidType
case "TenantID":
return ErrInvalidTenantID
case "MaxDevices":
return ErrInvalidMaxDevices
}
}
return ErrInvalidInput
}