@@ -93,35 +93,70 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
93
93
{ {#allParams} }
94
94
{ {#isPathParam} }
95
95
{ {#isNumber} }
96
- { {paramName} }Param, err := parseFloat32Parameter({ {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} }, { {required} })
97
- if err != nil {
96
+ { {paramName} }Param, err := parseNumericParameter[float32](
97
+ { {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} },{ {#defaultValue} }
98
+ WithDefaultOrParse[float32]({ {defaultValue} }, parseFloat32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
99
+ WithRequire[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
100
+ WithParse[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
101
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
102
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
103
+ )
104
+ if err != nil {
98
105
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
99
106
return
100
107
}
101
108
{ {/isNumber} }
102
109
{ {#isFloat} }
103
- { {paramName} }Param, err := parseFloat32Parameter({ {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} }, { {required} })
110
+ { {paramName} }Param, err := parseNumericParameter[float32](
111
+ { {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} },{ {#defaultValue} }
112
+ WithDefaultOrParse[float32]({ {defaultValue} }, parseFloat32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
113
+ WithRequire[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
114
+ WithParse[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
115
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
116
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
117
+ )
104
118
if err != nil {
105
119
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
106
120
return
107
121
}
108
122
{ {/isFloat} }
109
123
{ {#isDouble} }
110
- { {paramName} }Param, err := parseFloat64Parameter({ {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} }, { {required} })
124
+ { {paramName} }Param, err := parseNumericParameter[float64](
125
+ { {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} },{ {#defaultValue} }
126
+ WithDefaultOrParse[float64]({ {defaultValue} }, parseFloat64),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
127
+ WithRequire[float64](parseFloat64),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
128
+ WithParse[float64](parseFloat64),{ {/required} }{ {/defaultValue} }{ {#minimum} }
129
+ WithMinimum[float64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
130
+ WithMaximum[float64]({ {maximum} }),{ {/maximum} }
131
+ )
111
132
if err != nil {
112
133
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
113
134
return
114
135
}
115
136
{ {/isDouble} }
116
137
{ {#isLong} }
117
- { {paramName} }Param, err := parseInt64Parameter({ {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} }, { {required} })
138
+ { {paramName} }Param, err := parseNumericParameter[int64](
139
+ { {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} },{ {#defaultValue} }
140
+ WithDefaultOrParse[int64]({ {defaultValue} }, parseInt64),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
141
+ WithRequire[int64](parseInt64),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
142
+ WithParse[int64](parseInt64),{ {/required} }{ {/defaultValue} }{ {#minimum} }
143
+ WithMinimum[int64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
144
+ WithMaximum[int64]({ {maximum} }),{ {/maximum} }
145
+ )
118
146
if err != nil {
119
147
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
120
148
return
121
149
}
122
150
{ {/isLong} }
123
151
{ {#isInteger} }
124
- { {paramName} }Param, err := parseInt32Parameter({ {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} }, { {required} })
152
+ { {paramName} }Param, err := parseNumericParameter[int32](
153
+ { {#routers} }{ {#mux} }params["{ {baseName} }"]{ {/mux} }{ {#chi} }chi.URLParam(r, "{ {baseName} }"){ {/chi} }{ {/routers} },{ {#defaultValue} }
154
+ WithDefaultOrParse[int32]({ {defaultValue} }, parseInt32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
155
+ WithRequire[int32](parseInt32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
156
+ WithParse[int32](parseInt32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
157
+ WithMinimum[int32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
158
+ WithMaximum[int32]({ {maximum} }),{ {/maximum} }
159
+ )
125
160
if err != nil {
126
161
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
127
162
return
@@ -141,78 +176,143 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
141
176
{ {/isPathParam} }
142
177
{ {#isQueryParam} }
143
178
{ {#isNumber} }
144
- { {paramName} }Param, err := parseFloat32Parameter(query.Get("{ {baseName} }"), { {required} })
179
+ { {paramName} }Param, err := parseNumericParameter[float32](
180
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
181
+ WithDefaultOrParse[float32]({ {defaultValue} }, parseFloat32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
182
+ WithRequire[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
183
+ WithParse[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
184
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
185
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
186
+ )
145
187
if err != nil {
146
188
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
147
189
return
148
190
}
149
191
{ {/isNumber} }
150
192
{ {#isFloat} }
151
- { {paramName} }Param, err := parseFloat32Parameter(query.Get("{ {baseName} }"), { {required} })
193
+ { {paramName} }Param, err := parseNumericParameter[float32](
194
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
195
+ WithDefaultOrParse[float32]({ {defaultValue} }, parseFloat32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
196
+ WithRequire[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
197
+ WithParse[float32](parseFloat32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
198
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
199
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
200
+ )
152
201
if err != nil {
153
202
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
154
203
return
155
204
}
156
205
{ {/isFloat} }
157
206
{ {#isDouble} }
158
- { {paramName} }Param, err := parseFloat64Parameter(query.Get("{ {baseName} }"), { {required} })
207
+ { {paramName} }Param, err := parseNumericParameter[float64](
208
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
209
+ WithDefaultOrParse[float64]({ {defaultValue} }, parseFloat64),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
210
+ WithRequire[float64](parseFloat64),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
211
+ WithParse[float64](parseFloat64),{ {/required} }{ {/defaultValue} }{ {#minimum} }
212
+ WithMinimum[float64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
213
+ WithMaximum[float64]({ {maximum} }),{ {/maximum} }
214
+ )
159
215
if err != nil {
160
216
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
161
217
return
162
218
}
163
219
{ {/isDouble} }
164
220
{ {#isLong} }
165
- { {paramName} }Param, err := parseInt64Parameter(query.Get("{ {baseName} }"), { {required} })
221
+ { {paramName} }Param, err := parseNumericParameter[int64](
222
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
223
+ WithDefaultOrParse[int64]({ {defaultValue} }, parseInt64),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
224
+ WithRequire[int64](parseInt64),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
225
+ WithParse[int64](parseInt64),{ {/required} }{ {/defaultValue} }{ {#minimum} }
226
+ WithMinimum[int64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
227
+ WithMaximum[int64]({ {maximum} }),{ {/maximum} }
228
+ )
166
229
if err != nil {
167
230
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
168
231
return
169
232
}
170
233
{ {/isLong} }
171
234
{ {#isInteger} }
172
- { {paramName} }Param, err := parseInt32Parameter(query.Get("{ {baseName} }"), { {required} })
235
+ { {paramName} }Param, err := parseNumericParameter[int32](
236
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
237
+ WithDefaultOrParse[int32]({ {defaultValue} }, parseInt32),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
238
+ WithRequire[int32](parseInt32),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
239
+ WithParse[int32](parseInt32),{ {/required} }{ {/defaultValue} }{ {#minimum} }
240
+ WithMinimum[int32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
241
+ WithMaximum[int32]({ {maximum} }),{ {/maximum} }
242
+ )
173
243
if err != nil {
174
244
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
175
245
return
176
246
}
177
247
{ {/isInteger} }
178
248
{ {#isBoolean} }
179
- { {paramName} }Param, err := parseBoolParameter(query.Get("{ {baseName} }"), { {required} })
249
+ { {paramName} }Param, err := parseBoolParameter(
250
+ query.Get("{ {baseName} }"),{ {#defaultValue} }
251
+ WithDefaultOrParse[bool]({ {defaultValue} }, parseBool),{ {/defaultValue} }{ {^defaultValue} }{ {#required} }
252
+ WithRequire[bool](parseBool),{ {/required} }{ {/defaultValue} }{ {^defaultValue} }{ {^required} }
253
+ WithParse[float32](parseBool),{ {/required} }{ {/defaultValue} }
254
+ )
180
255
if err != nil {
181
256
w.WriteHeader(500)
182
257
return
183
258
}
184
259
{ {/isBoolean} }
185
260
{ {#isArray} }
186
261
{ {#items.isNumber} }
187
- { {paramName} }Param, err := parseFloat32ArrayParameter(query.Get("{ {baseName} }"), { {required} })
262
+ { {paramName} }Param, err := parseNumericArrayParameter[float32](
263
+ query.Get("{ {baseName} }"), ",", { {required} },
264
+ WithParse[float32](parseFloat32),{ {#minimum} }
265
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
266
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
267
+ )
188
268
if err != nil {
189
269
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
190
270
return
191
271
}
192
272
{ {/items.isNumber} }
193
273
{ {#items.isFloat} }
194
- { {paramName} }Param, err := parseFloat32ArrayParameter(query.Get("{ {baseName} }"), { {required} })
274
+ { {paramName} }Param, err := parseNumericArrayParameter[float32](
275
+ query.Get("{ {baseName} }"), ",", { {required} },
276
+ WithParse[float32](parseFloat32),{ {#minimum} }
277
+ WithMinimum[float32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
278
+ WithMaximum[float32]({ {maximum} }),{ {/maximum} }
279
+ )
195
280
if err != nil {
196
281
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
197
282
return
198
283
}
199
284
{ {/items.isFloat} }
200
285
{ {#items.isDouble} }
201
- { {paramName} }Param, err := parseFloat64ArrayParameter(query.Get("{ {baseName} }"), { {required} })
286
+ { {paramName} }Param, err := parseNumericArrayParameter[float64](
287
+ query.Get("{ {baseName} }"), ",", { {required} },
288
+ WithParse[float64](parseFloat64),{ {#minimum} }
289
+ WithMinimum[float64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
290
+ WithMaximum[float64]({ {maximum} }),{ {/maximum} }
291
+ )
202
292
if err != nil {
203
293
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
204
294
return
205
295
}
206
296
{ {/items.isDouble} }
207
297
{ {#items.isLong} }
208
- { {paramName} }Param, err := parseInt64ArrayParameter(query.Get("{ {baseName} }"), ",", { {required} })
298
+ { {paramName} }Param, err := parseNumericArrayParameter[int64](
299
+ query.Get("{ {baseName} }"), ",", { {required} },
300
+ WithParse[int64](parseInt64),{ {#minimum} }
301
+ WithMinimum[int64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
302
+ WithMaximum[int64]({ {maximum} }),{ {/maximum} }
303
+ )
209
304
if err != nil {
210
305
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
211
306
return
212
307
}
213
308
{ {/items.isLong} }
214
309
{ {#items.isInteger} }
215
- { {paramName} }Param, err := parseInt32ArrayParameter(query.Get("{ {baseName} }"), ",", { {required} })
310
+ { {paramName} }Param, err := parseNumericArrayParameter[int32](
311
+ query.Get("{ {baseName} }"), ",", { {required} },
312
+ WithParse[int32](parseInt32),{ {#minimum} }
313
+ WithMinimum[int32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
314
+ WithMaximum[int32]({ {maximum} }),{ {/maximum} }
315
+ )
216
316
if err != nil {
217
317
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
218
318
return
@@ -237,7 +337,15 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
237
337
{ {^isInteger} }
238
338
{ {^isBoolean} }
239
339
{ {^isArray} }
340
+ { {#defaultValue} }
341
+ { {paramName} }Param := "{ {defaultValue} }"
342
+ if query.Has("{ {baseName} }") {
343
+ {{paramName} }Param = query.Get("{ {baseName} }")
344
+ }
345
+ { {/defaultValue} }
346
+ { {^defaultValue} }
240
347
{ {paramName} }Param := query.Get("{ {baseName} }")
348
+ { {/defaultValue} }
241
349
{ {/isArray} }
242
350
{ {/isBoolean} }
243
351
{ {/isInteger} }
@@ -257,21 +365,29 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
257
365
}
258
366
{ {/isFile} }
259
367
{ {#isLong} }{ {#isArray} }
260
- { {paramName} }Param, err := parseInt64ArrayParameter(r.FormValue("{ {baseName} }"), ",", { {required} }){ {/isArray} }{ {^isArray} }
261
- { {paramName} }Param, err := parseInt64Parameter(r.FormValue("{ {baseName} }"), { {required} }){ {/isArray} }
368
+ { {paramName} }Param, err := parseNumericArrayParameter[int64](
369
+ r.FormValue("{ {baseName} }"), ",", { {required} },
370
+ WithParse[int64](parseInt64),{ {#minimum} }
371
+ WithMinimum[int64]({ {minimum} }),{ {/minimum} }{ {#maximum} }
372
+ WithMaximum[int64]({ {maximum} }),{ {/maximum} }
373
+ )
262
374
if err != nil {
263
375
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
264
376
return
265
377
}
266
- { {/isLong} }
378
+ { {/isArray } } { {/ isLong} }
267
379
{ {#isInteger} }{ {#isArray} }
268
- { {paramName} }Param, err := parseInt32ArrayParameter(r.FormValue("{ {baseName} }"), ",", { {required} }){ {/isArray} }{ {^isArray} }
269
- { {paramName} }Param, err := parseInt32Parameter(r.FormValue("{ {baseName} }"), { {required} }){ {/isArray} }
380
+ { {paramName} }Param, err := parseNumericArrayParameter[int32](
381
+ r.FormValue("{ {baseName} }"), ",", { {required} },
382
+ WithParse[int32](parseInt32),{ {#minimum} }
383
+ WithMinimum[int32]({ {minimum} }),{ {/minimum} }{ {#maximum} }
384
+ WithMaximum[int32]({ {maximum} }),{ {/maximum} }
385
+ )
270
386
if err != nil {
271
387
c.errorHandler(w, r, &ParsingError{Err: err} , nil)
272
388
return
273
389
}
274
- { {/isInteger} }
390
+ { {/isArray } } { {/ isInteger} }
275
391
{ {^isFile} }
276
392
{ {^isLong} }
277
393
{ {paramName} }Param := r.FormValue("{ {baseName} }")
@@ -306,6 +422,10 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
306
422
if err := Assert{ {baseType} }Required({ {paramName} }Param); err != nil {
307
423
c.errorHandler(w, r, err, nil)
308
424
return
425
+ }
426
+ if err := Assert{ {baseType} }Constraints({ {paramName} }Param); err != nil {
427
+ c.errorHandler(w, r, err, nil)
428
+ return
309
429
}
310
430
{ {/isModel} }
311
431
{ {/isArray} }
0 commit comments