37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package helpers
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
type ValidationError struct {
|
|
ActualTag string `json:"tag"`
|
|
Namespace string `json:"namespace"`
|
|
Kind string `json:"kind"`
|
|
Type string `json:"type"`
|
|
Value string `json:"value"`
|
|
Param string `json:"param"`
|
|
Field string `json:"field"`
|
|
StructField string `json:"structField"`
|
|
}
|
|
|
|
func WrapValidationErrors(errs validator.ValidationErrors) []ValidationError {
|
|
validationErrors := make([]ValidationError, 0, len(errs))
|
|
for _, validationErr := range errs {
|
|
validationErrors = append(validationErrors, ValidationError{
|
|
ActualTag: validationErr.ActualTag(),
|
|
Namespace: validationErr.Namespace(),
|
|
Kind: validationErr.Kind().String(),
|
|
Type: validationErr.Type().String(),
|
|
Value: fmt.Sprintf("%v", validationErr.Value()),
|
|
Param: validationErr.Param(),
|
|
Field: validationErr.Field(),
|
|
StructField: validationErr.StructField(),
|
|
})
|
|
}
|
|
|
|
return validationErrors
|
|
}
|