Skip to content

Commit 8bff641

Browse files
committed
fixes
1 parent 71eea7a commit 8bff641

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed

coderd/database/queries.sql.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/insights.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ WITH app_stats_by_user_and_agent AS (
5353
)
5454

5555
SELECT
56-
users.id,
56+
users.id as user_id,
5757
users.username,
5858
users.avatar_url,
5959
array_agg(DISTINCT template_id)::uuid[] AS template_ids,

coderd/insights.go

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,53 @@ func (api *API) insightsUserActivity(rw http.ResponseWriter, r *http.Request) {
9494
return
9595
}
9696

97-
// TODO
97+
rows, err := api.Database.GetUserActivityInsights(ctx, database.GetUserActivityInsightsParams{
98+
StartTime: startTime,
99+
EndTime: endTime,
100+
TemplateIDs: templateIDs,
101+
})
102+
if err != nil {
103+
if httpapi.Is404Error(err) {
104+
httpapi.ResourceNotFound(rw)
105+
return
106+
}
107+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
108+
Message: "Internal error fetching user activity.",
109+
Detail: err.Error(),
110+
})
111+
return
112+
}
113+
114+
templateIDSet := make(map[uuid.UUID]struct{})
115+
userActivities := make([]codersdk.UserActivity, 0, len(rows))
116+
for _, row := range rows {
117+
for _, templateID := range row.TemplateIDs {
118+
templateIDSet[templateID] = struct{}{}
119+
}
120+
userActivities = append(userActivities, codersdk.UserActivity{
121+
TemplateIDs: row.TemplateIDs,
122+
UserID: row.UserID,
123+
Username: row.Username,
124+
AvatarURL: row.AvatarURL.String,
125+
Seconds: row.UsageSeconds,
126+
})
127+
}
98128

99-
seenTemplateIDs := templateIDs // FIXME
129+
// TemplateIDs that contributed to the data.
130+
seenTemplateIDs := make([]uuid.UUID, 0, len(templateIDSet))
131+
for templateID := range templateIDSet {
132+
seenTemplateIDs = append(seenTemplateIDs, templateID)
133+
}
134+
slices.SortFunc(seenTemplateIDs, func(a, b uuid.UUID) int {
135+
return slice.Ascending(a.String(), b.String())
136+
})
100137

101138
resp := codersdk.UserActivityInsightsResponse{
102139
Report: codersdk.UserActivityInsightsReport{
103140
StartTime: startTime,
104141
EndTime: endTime,
105142
TemplateIDs: seenTemplateIDs,
106-
Users: nil, // FIXME
143+
Users: userActivities,
107144
},
108145
}
109146
httpapi.Write(ctx, rw, http.StatusOK, resp)

0 commit comments

Comments
 (0)