This commit is contained in:
Manu Mtz-Almeida 2015-05-29 20:34:41 +02:00
parent e899d8a99e
commit 9584e4ea5c
2 changed files with 29 additions and 0 deletions

View File

@ -6,6 +6,7 @@ package binding
import (
"net/http"
"reflect"
"gopkg.in/bluesuncorp/validator.v5"
)
@ -56,8 +57,20 @@ func ValidateField(f interface{}, tag string) error {
}
func Validate(obj interface{}) error {
if kindOfData(obj) != reflect.Struct {
return nil
}
if err := validate.Struct(obj); err != nil {
return error(err)
}
return nil
}
func kindOfData(data interface{}) reflect.Kind {
value := reflect.ValueOf(data)
valueType := value.Kind()
if valueType == reflect.Ptr {
valueType = value.Elem().Kind()
}
return valueType
}

View File

@ -51,3 +51,19 @@ func TestValidateGoodObject(t *testing.T) {
test := createStruct()
assert.Nil(t, Validate(&test))
}
type Object map[string]interface{}
type MyObjects []Object
func TestValidateSlice(t *testing.T) {
var obj MyObjects
var obj2 Object
var nu = 10
assert.NoError(t, Validate(obj))
assert.NoError(t, Validate(&obj))
assert.NoError(t, Validate(obj2))
assert.NoError(t, Validate(&obj2))
assert.NoError(t, Validate(nu))
assert.NoError(t, Validate(&nu))
}