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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy