7 "github.com/gin-gonic/gin/binding"
8 "gopkg.in/go-playground/validator.v9"
11 type defaultValidator struct {
13 validate *validator.Validate
16 var _ binding.StructValidator = &defaultValidator{}
18 func (v *defaultValidator) ValidateStruct(obj interface{}) error {
20 if kindOfData(obj) == reflect.Struct {
24 if err := v.validate.Struct(obj); err != nil {
32 func (v *defaultValidator) lazyinit() {
34 v.validate = validator.New()
35 v.validate.SetTagName("binding")
37 // add any custom validations etc. here
41 func kindOfData(data interface{}) reflect.Kind {
43 value := reflect.ValueOf(data)
44 valueType := value.Kind()
46 if valueType == reflect.Ptr {
47 valueType = value.Elem().Kind()