GoDoxy/internal/utils/validation.go

29 lines
538 B
Go

package utils
import (
"github.com/go-playground/validator/v10"
"github.com/yusing/go-proxy/internal/gperr"
)
var validate = validator.New()
var ErrValidationError = gperr.New("validation error")
func Validate(v any) gperr.Error {
err := validate.Struct(v)
if err != nil {
return ErrValidationError.With(err)
}
return nil
}
type CustomValidator interface {
Validate() gperr.Error
}
func MustRegisterValidation(tag string, fn validator.Func) {
err := validate.RegisterValidation(tag, fn)
if err != nil {
panic(err)
}
}