Basic DTO validation

This commit is contained in:
Eden Kirin
2023-10-30 23:33:10 +01:00
parent bf6ced948a
commit ca4014e306
7 changed files with 117 additions and 33 deletions

View File

@ -0,0 +1,36 @@
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
}