diff --git a/valid/valid.go b/valid/valid.go index 90e35f9d28c10c769a0e0d0fa6accd512746f368..3de93e1353bd69f2ee22d410d1dc1f6613989402 100644 --- a/valid/valid.go +++ b/valid/valid.go @@ -45,6 +45,9 @@ if valid.input == nil { panic("Attempted to validate fields without input") } if o, ok := valid.input[name]; ok { + if o == nil { + return + } fn(o) } } @@ -58,13 +61,22 @@ if valid.input == nil { panic("Attempted to validate fields without input") } if o, ok := valid.input[name]; ok { - s, ok := o.(string) - valid. - Expect(ok, "Expected %s to be a string", name). - WithField(name) - if ok { - fn(s) + if o == nil { + return } + var val string + switch s := o.(type) { + case string: + val = s + case *string: + val = *s + default: + valid. + Error("Expected %s to be a string", name). + WithField(name) + return + } + fn(val) } }