11package validator
22
33import (
4- "log "
4+ "fmt "
55 "reflect"
66 "strconv"
77)
88
9+ // BakedInValidators is the map of ValidationFunc used internally
10+ // but can be used with any new Validator if desired
911var BakedInValidators = map [string ]ValidationFunc {
1012 "required" : required ,
1113 "len" : length ,
1214 "min" : min ,
1315 "max" : max ,
16+ "alpha" : alpha ,
17+ "alphanum" : alphanum ,
18+ }
19+
20+ func alphanum (field interface {}, param string ) bool {
21+
22+ st := reflect .ValueOf (field )
23+
24+ switch st .Kind () {
25+
26+ case reflect .String :
27+ return alphaNumericRegex .MatchString (field .(string ))
28+ default :
29+ panic (fmt .Sprintf ("Bad field type %T" , field ))
30+ }
31+ }
32+
33+ func alpha (field interface {}, param string ) bool {
34+
35+ st := reflect .ValueOf (field )
36+
37+ switch st .Kind () {
38+
39+ case reflect .String :
40+ return alphaRegex .MatchString (field .(string ))
41+ default :
42+ panic (fmt .Sprintf ("Bad field type %T" , field ))
43+ }
1444}
1545
1646func required (field interface {}, param string ) bool {
@@ -62,8 +92,7 @@ func length(field interface{}, param string) bool {
6292 return st .Float () == p
6393
6494 default :
65- log .Fatalf ("Bad field type for Input Param %s for %s\n " , param , field )
66- return false
95+ panic (fmt .Sprintf ("Bad field type for Input Param %s for %s\n " , param , field ))
6796 }
6897}
6998
@@ -103,8 +132,7 @@ func min(field interface{}, param string) bool {
103132 return st .Float () >= p
104133
105134 default :
106- log .Fatalf ("Bad field type for Input Param %s for %s\n " , param , field )
107- return false
135+ panic (fmt .Sprintf ("Bad field type for Input Param %s for %s\n " , param , field ))
108136 }
109137}
110138
@@ -144,8 +172,7 @@ func max(field interface{}, param string) bool {
144172 return st .Float () <= p
145173
146174 default :
147- log .Fatalf ("Bad field type for Input Param %s for %s\n " , param , field )
148- return false
175+ panic (fmt .Sprintf ("Bad field type for Input Param %s for %s\n " , param , field ))
149176 }
150177}
151178
@@ -156,7 +183,7 @@ func asInt(param string) int64 {
156183 i , err := strconv .ParseInt (param , 0 , 64 )
157184
158185 if err != nil {
159- log . Fatalf ("Bad Input Param %s\n " , param )
186+ panic ( fmt . Sprintf ("Bad Input Param %s\n " , param ) )
160187 }
161188
162189 return i
@@ -169,7 +196,7 @@ func asUint(param string) uint64 {
169196 i , err := strconv .ParseUint (param , 0 , 64 )
170197
171198 if err != nil {
172- log . Fatalf ("Bad Input Param %s\n " , param )
199+ panic ( fmt . Sprintf ("Bad Input Param %s\n " , param ) )
173200 }
174201
175202 return i
@@ -182,7 +209,7 @@ func asFloat(param string) float64 {
182209 i , err := strconv .ParseFloat (param , 64 )
183210
184211 if err != nil {
185- log . Fatalf ("Bad Input Param %s\n " , param )
212+ panic ( fmt . Sprintf ("Bad Input Param %s\n " , param ) )
186213 }
187214
188215 return i
0 commit comments