Skip to content

Commit 5588e39

Browse files
committed
create convert function for builtin apps
1 parent b1de87f commit 5588e39

File tree

1 file changed

+40
-34
lines changed

1 file changed

+40
-34
lines changed

coderd/insights.go

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -271,46 +271,52 @@ func (api *API) insightsTemplates(rw http.ResponseWriter, r *http.Request) {
271271
EndTime: endTime,
272272
TemplateIDs: usage.TemplateIDs,
273273
ActiveUsers: usage.ActiveUsers,
274-
AppsUsage: []codersdk.TemplateAppUsage{
275-
{
276-
TemplateIDs: usage.TemplateIDs,
277-
Type: codersdk.TemplateAppsTypeBuiltin,
278-
DisplayName: "Visual Studio Code",
279-
Slug: "vscode",
280-
Icon: "/icons/code.svg",
281-
Seconds: usage.UsageVscodeSeconds,
282-
},
283-
{
284-
TemplateIDs: usage.TemplateIDs,
285-
Type: codersdk.TemplateAppsTypeBuiltin,
286-
DisplayName: "JetBrains",
287-
Slug: "jetbrains",
288-
Icon: "/icons/intellij.svg",
289-
Seconds: usage.UsageJetbrainsSeconds,
290-
},
291-
{
292-
TemplateIDs: usage.TemplateIDs,
293-
Type: codersdk.TemplateAppsTypeBuiltin,
294-
DisplayName: "Web Terminal",
295-
Slug: "reconnecting-pty",
296-
Icon: "/icons/terminal.svg",
297-
Seconds: usage.UsageReconnectingPtySeconds,
298-
},
299-
{
300-
TemplateIDs: usage.TemplateIDs,
301-
Type: codersdk.TemplateAppsTypeBuiltin,
302-
DisplayName: "SSH",
303-
Slug: "ssh",
304-
Icon: "/icons/terminal.svg",
305-
Seconds: usage.UsageSshSeconds,
306-
},
307-
},
274+
AppsUsage: convertTemplateInsightsBuiltinApps(usage),
308275
},
309276
IntervalReports: intervalReports,
310277
}
311278
httpapi.Write(ctx, rw, http.StatusOK, resp)
312279
}
313280

281+
// convertTemplateInsightsBuiltinApps builds the list of builtin apps from the
282+
// database row, these are apps that are implicitly a part of all templates.
283+
func convertTemplateInsightsBuiltinApps(usage database.GetTemplateInsightsRow) []codersdk.TemplateAppUsage {
284+
return []codersdk.TemplateAppUsage{
285+
{
286+
TemplateIDs: usage.TemplateIDs,
287+
Type: codersdk.TemplateAppsTypeBuiltin,
288+
DisplayName: "Visual Studio Code",
289+
Slug: "vscode",
290+
Icon: "/icons/code.svg",
291+
Seconds: usage.UsageVscodeSeconds,
292+
},
293+
{
294+
TemplateIDs: usage.TemplateIDs,
295+
Type: codersdk.TemplateAppsTypeBuiltin,
296+
DisplayName: "JetBrains",
297+
Slug: "jetbrains",
298+
Icon: "/icons/intellij.svg",
299+
Seconds: usage.UsageJetbrainsSeconds,
300+
},
301+
{
302+
TemplateIDs: usage.TemplateIDs,
303+
Type: codersdk.TemplateAppsTypeBuiltin,
304+
DisplayName: "Web Terminal",
305+
Slug: "reconnecting-pty",
306+
Icon: "/icons/terminal.svg",
307+
Seconds: usage.UsageReconnectingPtySeconds,
308+
},
309+
{
310+
TemplateIDs: usage.TemplateIDs,
311+
Type: codersdk.TemplateAppsTypeBuiltin,
312+
DisplayName: "SSH",
313+
Slug: "ssh",
314+
Icon: "/icons/terminal.svg",
315+
Seconds: usage.UsageSshSeconds,
316+
},
317+
}
318+
}
319+
314320
// parseInsightsStartAndEndTime parses the start and end time query parameters
315321
// and returns the parsed values. The client provided timezone must be preserved
316322
// when parsing the time. Verification is performed so that the start and end

0 commit comments

Comments
 (0)