-
Notifications
You must be signed in to change notification settings - Fork 25
/
rules.go
130 lines (106 loc) · 4.38 KB
/
rules.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package validator
import (
"regexp"
vd "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
)
// RequiredIfValid utils/optional系の値がvalid時に空の値を弾く
//
// 仕組み:
// utils/optional系の値は sql.Valuer を実装している
// Valid: false の場合、nilがvalidationされるので通る
// Valid: true かつ空の値の場合、空の値がvalidationされるので通らない
//
// 分かりやすいように & このコメントを書くため名前を付けている
var RequiredIfValid = vd.NilOrNotEmpty
// PasswordRule パスワードバリデーションルール
var PasswordRule = []vd.Rule{
is.PrintableASCII,
vd.RuneLength(10, 32),
}
// PasswordRuleRequired パスワードバリデーションルール with Required
var PasswordRuleRequired = append([]vd.Rule{
vd.Required,
}, PasswordRule...)
// UserNameRule ユーザー名バリデーションルール
var UserNameRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[a-zA-Z0-9_-]+$`)).Error("must contain [a-zA-Z0-9_-] only"),
vd.RuneLength(1, 32),
}
// UserNameRuleRequired ユーザー名バリデーションルール with Required
var UserNameRuleRequired = append([]vd.Rule{
vd.Required,
}, UserNameRule...)
// BotUserNameRule BOTユーザー名バリデーションルール
var BotUserNameRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[a-zA-Z0-9_-]+$`)).Error("must contain [a-zA-Z0-9_-] only"),
vd.RuneLength(1, 20),
}
// BotUserNameRuleRequired BOTユーザー名バリデーションルール with Required
var BotUserNameRuleRequired = append([]vd.Rule{
vd.Required,
}, BotUserNameRule...)
// UserGroupNameRule ユーザーグループ名バリデーションルール
var UserGroupNameRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[^@@##]*[^@@##:]$`)).Error("must not contain [@@##] and the last character must not be :"),
vd.RuneLength(1, 30),
}
// UserGroupNameRuleRequired ユーザーグループ名バリデーションルール with Required
var UserGroupNameRuleRequired = append([]vd.Rule{
vd.Required,
}, UserGroupNameRule...)
// ChannelNameRule チャンネル名バリデーションルール
var ChannelNameRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[a-zA-Z0-9_-]+$`)).Error("must contain [a-zA-Z0-9_-] only"),
vd.RuneLength(1, 20),
}
// ChannelNameRuleRequired チャンネル名バリデーションルール with Required
var ChannelNameRuleRequired = append([]vd.Rule{
vd.Required,
}, ChannelNameRule...)
// StampNameRule スタンプ名バリデーションルール
var StampNameRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[a-zA-Z0-9_-]+$`)).Error("must contain [a-zA-Z0-9_-] only"),
vd.RuneLength(1, 32),
}
// StampNameRuleRequired スタンプ名バリデーションルール with Required
var StampNameRuleRequired = append([]vd.Rule{
vd.Required,
}, StampNameRule...)
// StampPaletteNameRule スタンプパレット名バリデーションルール
var StampPaletteNameRule = []vd.Rule{
vd.RuneLength(1, 30),
}
// StampPaletteNameRuleRequired スタンプパレット名バリデーションルール with Required
var StampPaletteNameRuleRequired = append([]vd.Rule{
vd.Required,
}, StampPaletteNameRule...)
// StampPaletteDescriptionRule スタンプパレット説明バリデーションルール
var StampPaletteDescriptionRule = []vd.Rule{
vd.RuneLength(0, 1000),
}
// StampPaletteStampsRule スタンプパレット内スタンプバリデーションルール
var StampPaletteStampsRule = []vd.Rule{
vd.Length(0, 200),
}
// StampPaletteStampsRuleNotNil スタンプパレット内スタンプバリデーションルール with NotNil
var StampPaletteStampsRuleNotNil = append([]vd.Rule{
vd.NotNil,
}, StampPaletteStampsRule...)
// TwitterIDRule TwitterIDバリデーションルール
var TwitterIDRule = []vd.Rule{
vd.Match(regexp.MustCompile(`^[a-zA-Z0-9_]+$`)).Error("must contain [a-zA-Z0-9_] only"),
vd.RuneLength(1, 15),
}
// ClipFolderNameRule クリップフォルダー名バリデーションルール
var ClipFolderNameRule = []vd.Rule{
vd.RuneLength(1, 30),
}
// ClipFolderNameRuleRequired クリップフォルダー名バリデーションルール with Required
var ClipFolderNameRuleRequired = append([]vd.Rule{
vd.Required,
}, ClipFolderNameRule...)
// ClipFolderDescriptionRule クリップフォルダーの説明バリデーションルール
var ClipFolderDescriptionRule = []vd.Rule{
vd.RuneLength(0, 1000),
}