@@ -209,29 +209,16 @@ func (api *API) insightsTemplates(rw http.ResponseWriter, r *http.Request) {
209
209
if ! verifyInsightsStartAndEndTime (ctx ,rw ,startTime ,endTime ) {
210
210
return
211
211
}
212
+ interval ,ok := verifyInsightsInterval (ctx ,rw ,intervalString )
213
+ if ! ok {
214
+ return
215
+ }
212
216
213
217
// Should we verify all template IDs exist, or just return no rows?
214
218
// _, err := api.Database.GetTemplatesWithFilter(ctx, database.GetTemplatesWithFilterParams{
215
219
// IDs: templateIDs,
216
220
// })
217
221
218
- var interval codersdk.InsightsReportInterval
219
- switch v := codersdk .InsightsReportInterval (intervalString );v {
220
- case codersdk .InsightsReportIntervalDay ,codersdk .InsightsReportIntervalNone :
221
- interval = v
222
- default :
223
- httpapi .Write (ctx ,rw ,http .StatusBadRequest , codersdk.Response {
224
- Message :"Query parameter has invalid value." ,
225
- Validations : []codersdk.ValidationError {
226
- {
227
- Field :"interval" ,
228
- Detail :fmt .Sprintf ("must be one of %v" , []codersdk.InsightsReportInterval {codersdk .InsightsReportIntervalNone ,codersdk .InsightsReportIntervalDay }),
229
- },
230
- },
231
- })
232
- return
233
- }
234
-
235
222
var usage database.GetTemplateInsightsRow
236
223
var dailyUsage []database.GetTemplateDailyInsightsRow
237
224
// Use a transaction to ensure that we get consistent data between
@@ -372,3 +359,21 @@ func verifyInsightsStartAndEndTime(ctx context.Context, rw http.ResponseWriter,
372
359
373
360
return true
374
361
}
362
+
363
+ func verifyInsightsInterval (ctx context.Context ,rw http.ResponseWriter ,intervalString string ) (codersdk.InsightsReportInterval ,bool ) {
364
+ switch v := codersdk .InsightsReportInterval (intervalString );v {
365
+ case codersdk .InsightsReportIntervalDay ,codersdk .InsightsReportIntervalNone :
366
+ return v ,true
367
+ default :
368
+ httpapi .Write (ctx ,rw ,http .StatusBadRequest , codersdk.Response {
369
+ Message :"Query parameter has invalid value." ,
370
+ Validations : []codersdk.ValidationError {
371
+ {
372
+ Field :"interval" ,
373
+ Detail :fmt .Sprintf ("must be one of %v" , []codersdk.InsightsReportInterval {codersdk .InsightsReportIntervalNone ,codersdk .InsightsReportIntervalDay }),
374
+ },
375
+ },
376
+ })
377
+ return "" ,false
378
+ }
379
+ }