Basic DTO validation
This commit is contained in:
36
app/lib/helpers/validation.go
Normal file
36
app/lib/helpers/validation.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user