/
validators.go
50 lines (47 loc) · 1001 Bytes
/
validators.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package gen
import (
"github.com/wcl48/valval"
"regexp"
)
var _ = valval.String
var _ = regexp.Compile
var HogePostValidator = valval.Object(valval.M{
"Name": valval.String(),
"Code": valval.String(
valval.MinLength(8),
valval.MaxLength(16),
valval.Regexp(regexp.MustCompile(`^[a-z0-9]+$`)),
),
"Email": valval.String(
validateEmail,
),
"Password": valval.String(
valval.Regexp(regexp.MustCompile(`^[a-zA-Z0-9_]$`)),
),
"StringArraySample": valval.Slice(
valval.String(
valval.MinLength(1),
valval.MaxLength(50),
validateEmail,
),
).Self(
valval.MinSliceLength(1),
valval.MaxSliceLength(10),
),
"HogeType": valval.String(
valval.In("aiueo", "kakikukeko"),
),
"Nested1": valval.Object(valval.M{
"IntSample": valval.Number(
valval.Min(1),
valval.Max(100),
),
"NumberSample": valval.Number(
valval.Min(1.1),
valval.Max(111.1),
),
"BoolSample": valval.Bool(),
}).Self(),
}).Self(
valval.RequiredFields("Email", "Password", "Name"),
)