Browse Source

Add validating sub structures

Evgeny Persienko 10 years ago
parent
commit
f145e435c7
1 changed files with 11 additions and 0 deletions
  1. 11 0
      binding/binding.go

+ 11 - 0
binding/binding.go

@@ -199,6 +199,17 @@ 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
+					}
+				}
 			}
 		}
 	case reflect.Slice: