@@ -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
+ }
0 commit comments