1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-26 07:11:29 +00:00

remove the double isStruct/isStructPtr check

This commit is contained in:
Wyatt Fang 2015-04-24 11:14:49 +08:00
parent d0e7dd686b
commit 73650e1f2b

View File

@ -341,6 +341,7 @@ func (v *Validation) Valid(obj interface{}) (b bool, err error) {
// Anonymous fields will be ignored
func (v *Validation) RecursiveValid(objc interface{}) (bool, error) {
//Step 1: validate obj itself firstly
// fails if objc is not struct
pass, err := v.Valid(objc)
if err != nil || false == pass {
return pass, err // Stop recursive validation
@ -348,7 +349,6 @@ func (v *Validation) RecursiveValid(objc interface{}) (bool, error) {
// Step 2: Validate struct's struct fields
objT := reflect.TypeOf(objc)
objV := reflect.ValueOf(objc)
if isStruct(objT) || isStructPtr(objT) {
if isStructPtr(objT) {
objT = objT.Elem()
@ -359,6 +359,7 @@ func (v *Validation) RecursiveValid(objc interface{}) (bool, error) {
t := objT.Field(i).Type
// Recursive applies to struct or pointer to structs fields
if isStruct(t) || isStructPtr(t) {
// Step 3: do the recursive validation
// Only valid the Public field recursively
@ -367,7 +368,6 @@ func (v *Validation) RecursiveValid(objc interface{}) (bool, error) {
}
}
}
}
return pass, err
}