Ctrl K
ComunidadGuías…

server/admin/validate.go

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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
}