Skip to content

Commit 16a0380

Browse files
committed
fix: convert to ptr
1 parent 99fcbee commit 16a0380

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

coderd/telemetry/telemetry.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -768,16 +768,19 @@ func ConvertWorkspace(workspace database.Workspace) Workspace {
768768

769769
// ConvertWorkspaceBuild anonymizes a workspace build.
770770
func ConvertWorkspaceBuild(build database.WorkspaceBuild) WorkspaceBuild {
771-
return WorkspaceBuild{
771+
wb := WorkspaceBuild{
772772
ID: build.ID,
773773
CreatedAt: build.CreatedAt,
774774
WorkspaceID: build.WorkspaceID,
775775
JobID: build.JobID,
776776
TemplateVersionID: build.TemplateVersionID,
777777
// #nosec G115 - Safe conversion as build numbers are expected to be positive and within uint32 range
778778
BuildNumber: uint32(build.BuildNumber),
779-
HasAITask: build.HasAITask.Valid && build.HasAITask.Bool,
780779
}
780+
if build.HasAITask.Valid {
781+
wb.HasAITask = ptr.Ref(build.HasAITask.Bool)
782+
}
783+
return wb
781784
}
782785

783786
// ConvertProvisionerJob anonymizes a provisioner job.
@@ -1106,7 +1109,9 @@ func ConvertTemplateVersion(version database.TemplateVersion) TemplateVersion {
11061109
if version.SourceExampleID.Valid {
11071110
snapVersion.SourceExampleID = &version.SourceExampleID.String
11081111
}
1109-
snapVersion.HasAITask = version.HasAITask.Valid && version.HasAITask.Bool
1112+
if version.HasAITask.Valid {
1113+
snapVersion.HasAITask = ptr.Ref(version.HasAITask.Bool)
1114+
}
11101115
return snapVersion
11111116
}
11121117

@@ -1359,7 +1364,7 @@ type WorkspaceBuild struct {
13591364
TemplateVersionID uuid.UUID `json:"template_version_id"`
13601365
JobID uuid.UUID `json:"job_id"`
13611366
BuildNumber uint32 `json:"build_number"`
1362-
HasAITask bool `json:"has_ai_task"`
1367+
HasAITask *bool `json:"has_ai_task"`
13631368
}
13641369

13651370
type Workspace struct {
@@ -1407,7 +1412,7 @@ type TemplateVersion struct {
14071412
OrganizationID uuid.UUID `json:"organization_id"`
14081413
JobID uuid.UUID `json:"job_id"`
14091414
SourceExampleID *string `json:"source_example_id,omitempty"`
1410-
HasAITask bool `json:"has_ai_task"`
1415+
HasAITask *bool `json:"has_ai_task"`
14111416
}
14121417

14131418
type ProvisionerJob struct {

coderd/telemetry/telemetry_test.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func TestTelemetry(t *testing.T) {
118118
OrganizationID: org.ID,
119119
CreatedBy: user.ID,
120120
})
121-
_ = dbgen.TemplateVersion(t, db, database.TemplateVersion{
121+
taskTV := dbgen.TemplateVersion(t, db, database.TemplateVersion{
122122
OrganizationID: org.ID,
123123
TemplateID: uuid.NullUUID{UUID: taskTpl.ID, Valid: true},
124124
CreatedBy: user.ID,
@@ -142,7 +142,7 @@ func TestTelemetry(t *testing.T) {
142142
OpenIn: database.WorkspaceAppOpenInSlimWindow,
143143
AgentID: taskWsAgent.ID,
144144
})
145-
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
145+
taskWB := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
146146
Transition: database.WorkspaceTransitionStart,
147147
Reason: database.BuildReasonAutostart,
148148
WorkspaceID: taskWs.ID,
@@ -222,10 +222,16 @@ func TestTelemetry(t *testing.T) {
222222
require.Equal(t, string(database.WorkspaceAgentSubsystemExectrace), wsa.Subsystems[1])
223223

224224
require.True(t, slices.ContainsFunc(snapshot.TemplateVersions, func(ttv telemetry.TemplateVersion) bool {
225-
return ttv.HasAITask
225+
if ttv.ID != taskTV.ID {
226+
return false
227+
}
228+
return assert.NotNil(t, ttv.HasAITask) && assert.True(t, *ttv.HasAITask)
226229
}))
227230
require.True(t, slices.ContainsFunc(snapshot.WorkspaceBuilds, func(twb telemetry.WorkspaceBuild) bool {
228-
return twb.HasAITask
231+
if twb.ID != taskWB.ID {
232+
return false
233+
}
234+
return assert.NotNil(t, twb.HasAITask) && assert.True(t, *twb.HasAITask)
229235
}))
230236

231237
tvs := snapshot.TemplateVersions

0 commit comments

Comments
 (0)