This repository has been archived by the owner on Mar 24, 2023. It is now read-only.
/
modifiers.go
230 lines (193 loc) · 4.63 KB
/
modifiers.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
package esi
type (
modifiers struct {
allianceID uint
categoryID uint
characterID uint
constellationID uint
contractID uint
corporationID uint
from uint64
groupID uint
mailID uint
itemID uint
lastMailID uint64
page uint
regionID uint
stationID uint
solarSystemID uint
structureID uint64
}
modifierFunc func(mod *modifiers) *modifiers
pathFunc func(mod *modifiers) string
keyFunc func(mod *modifiers) string
endpointMap map[endpointID]*endpoint
)
func (s *service) modifiers(modFuncs ...modifierFunc) *modifiers {
mod := &modifiers{}
for _, modFunc := range modFuncs {
mod = modFunc(mod)
}
return mod
}
func ModWithPage(page uint) modifierFunc {
return func(mods *modifiers) *modifiers {
mods.page = page
return mods
}
}
func ModWithFromID(from uint64) modifierFunc {
return func(mods *modifiers) *modifiers {
mods.from = from
return mods
}
}
func ModWithLastMailID(lastMailID uint64) modifierFunc {
return func(mods *modifiers) *modifiers {
mods.lastMailID = lastMailID
return mods
}
}
func ModWithMailID(mailID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.mailID = mailID
return mod
}
}
func requireMailID(mods *modifiers) {
if mods.mailID == 0 {
panic("modifier mailID should be greater than 0")
}
}
func ModWithContractID(contractID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.contractID = contractID
return mod
}
}
func requireContractID(mods *modifiers) {
if mods.contractID == 0 {
panic("modifier allianceID should be greater than 0")
}
}
func ModWithAllianceID(allianceID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.allianceID = allianceID
return mod
}
}
func requireAllianceID(mods *modifiers) {
if mods.allianceID == 0 {
panic("modifier allianceID should be greater than 0")
}
}
func ModWithCategoryID(categoryID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.categoryID = categoryID
return mod
}
}
func requireCategoryID(mods *modifiers) {
if mods.categoryID == 0 {
panic("modifier categoryID should be greater than 0")
}
}
func ModWithCharacterID(characterID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.characterID = characterID
return mod
}
}
func requireCharacterID(mods *modifiers) {
if mods.characterID == 0 {
panic("modifier characterID should be greater than 0")
}
}
func ModWithCorporationID(corporationID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.corporationID = corporationID
return mod
}
}
func requireCorporationID(mods *modifiers) {
if mods.corporationID == 0 {
panic("modifier corporationID should be greater than 0")
}
}
func ModWithRegionID(regionID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.regionID = regionID
return mod
}
}
func requireRegionID(mods *modifiers) {
if mods.regionID == 0 {
panic("modifier regionID should be greater than 0")
}
}
func ModWithConstellationID(constellationID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.constellationID = constellationID
return mod
}
}
func requireConstellationID(mods *modifiers) {
if mods.constellationID == 0 {
panic("modifier constellationID should be greater than 0")
}
}
func ModWithGroupID(groupID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.groupID = groupID
return mod
}
}
func requireGroupID(mods *modifiers) {
if mods.groupID == 0 {
panic("modifier groupID should be greater than 0")
}
}
func ModWithItemID(itemID uint) modifierFunc {
return func(mods *modifiers) *modifiers {
mods.itemID = itemID
return mods
}
}
func requireItemID(mods *modifiers) {
if mods.itemID == 0 {
panic("modifier itemID should be greater than 0")
}
}
func ModWithSystemID(solarSystemID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.solarSystemID = solarSystemID
return mod
}
}
func requireSystemID(mods *modifiers) {
if mods.solarSystemID == 0 {
panic("modifier solarSystemID should be greater than 0")
}
}
func ModWithStationID(stationID uint) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.stationID = stationID
return mod
}
}
func requireStationID(mods *modifiers) {
if mods.stationID == 0 {
panic("modifier stationID should be greater than 0")
}
}
func ModWithStructureID(structureID uint64) modifierFunc {
return func(mod *modifiers) *modifiers {
mod.structureID = structureID
return mod
}
}
func requireStructureID(mods *modifiers) {
if mods.structureID == 0 {
panic("modifier structureID should be greater than 0")
}
}