homebox/backend/internal/sys/validate/validate.go
Hayden bd321af29f
chore: developer cleanup (#300)
* new PR tasks

* add homebox to know words

* formatting

* bump deps

* generate db models

* ts errors

* drop id

* fix accessor

* drop unused time field

* change CI

* add expected error

* add type check

* resolve serveral type errors

* hoise in CI
2023-02-17 21:41:01 -09:00

36 lines
804 B
Go

package validate
import "github.com/go-playground/validator/v10"
var validate *validator.Validate
func init() {
validate = validator.New()
}
// Checks a struct for validation errors and returns any errors the occur. This
// wraps the validate.Struct() function and provides some error wrapping. When
// a validator.ValidationErrors is returned, it is wrapped transformed into a
// FieldErrors array and returned.
func Check(val any) error {
err := validate.Struct(val)
if err != nil {
verrors, ok := err.(validator.ValidationErrors)
if !ok {
return err
}
fields := make(FieldErrors, 0, len(verrors))
for _, verr := range verrors {
field := FieldError{
Field: verr.Field(),
Error: verr.Error(),
}
fields = append(fields, field)
}
return fields
}
return nil
}