|
|
@@ -199,6 +199,22 @@ func Validate(obj interface{}, parents ...string) error {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ fieldType := field.Type.Kind()
|
|
|
+ if fieldType == reflect.Struct {
|
|
|
+ if reflect.DeepEqual(zero, fieldValue) {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ err := Validate(fieldValue, field.Name)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else if fieldType == reflect.Slice && field.Type.Elem().Kind() == reflect.Struct {
|
|
|
+ err := Validate(fieldValue, field.Name)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
case reflect.Slice:
|