@@ -58,7 +58,7 @@ func New() database.Store {
58
58
workspaceResourceMetadata : make ([]database.WorkspaceResourceMetadatum , 0 ),
59
59
provisionerJobs : make ([]database.ProvisionerJob , 0 ),
60
60
templateVersions : make ([]database.TemplateVersion , 0 ),
61
- templates : make ([]database.Template , 0 ),
61
+ templates : make ([]database.TemplateTable , 0 ),
62
62
workspaceAgentStats : make ([]database.WorkspaceAgentStat , 0 ),
63
63
workspaceAgentLogs : make ([]database.WorkspaceAgentStartupLog , 0 ),
64
64
workspaceBuilds : make ([]database.WorkspaceBuild , 0 ),
@@ -130,7 +130,7 @@ type data struct {
130
130
templateVersions []database.TemplateVersion
131
131
templateVersionParameters []database.TemplateVersionParameter
132
132
templateVersionVariables []database.TemplateVersionVariable
133
- templates []database.Template
133
+ templates []database.TemplateTable
134
134
workspaceAgents []database.WorkspaceAgent
135
135
workspaceAgentMetadata []database.WorkspaceAgentMetadatum
136
136
workspaceAgentLogs []database.WorkspaceAgentStartupLog
@@ -446,12 +446,37 @@ func (q *FakeQuerier) getLatestWorkspaceBuildByWorkspaceIDNoLock(_ context.Conte
446
446
func (q * FakeQuerier ) getTemplateByIDNoLock (_ context.Context , id uuid.UUID ) (database.Template , error ) {
447
447
for _ , template := range q .templates {
448
448
if template .ID == id {
449
- return template . DeepCopy ( ), nil
449
+ return q . templateWithUserNoLock ( template ), nil
450
450
}
451
451
}
452
452
return database.Template {}, sql .ErrNoRows
453
453
}
454
454
455
+ func (q * FakeQuerier ) templatesWithUserNoLock (tpl []database.TemplateTable ) []database.Template {
456
+ cpy := make ([]database.Template , 0 , len (tpl ))
457
+ for _ , t := range tpl {
458
+ cpy = append (cpy , q .templateWithUserNoLock (t ))
459
+ }
460
+ return cpy
461
+ }
462
+
463
+ func (q * FakeQuerier ) templateWithUserNoLock (tpl database.TemplateTable ) database.Template {
464
+ var user database.User
465
+ for _ , _user := range q .users {
466
+ if _user .ID == tpl .CreatedBy {
467
+ user = _user
468
+ break
469
+ }
470
+ }
471
+ var withUser database.Template
472
+ // This is a cheeky way to copy the fields over without explicitly listing them all.
473
+ d , _ := json .Marshal (tpl )
474
+ _ = json .Unmarshal (d , & withUser )
475
+ withUser .CreatedByUsername = user .Username
476
+ withUser .CreatedByAvatarURL = user .AvatarURL .String
477
+ return withUser
478
+ }
479
+
455
480
func (q * FakeQuerier ) getTemplateVersionByIDNoLock (_ context.Context , templateVersionID uuid.UUID ) (database.TemplateVersion , error ) {
456
481
for _ , templateVersion := range q .templateVersions {
457
482
if templateVersion .ID != templateVersionID {
@@ -1869,7 +1894,7 @@ func (q *FakeQuerier) GetTemplateByOrganizationAndName(_ context.Context, arg da
1869
1894
if template .Deleted != arg .Deleted {
1870
1895
continue
1871
1896
}
1872
- return template . DeepCopy ( ), nil
1897
+ return q . templateWithUserNoLock ( template ), nil
1873
1898
}
1874
1899
return database.Template {}, sql .ErrNoRows
1875
1900
}
@@ -2092,17 +2117,14 @@ func (q *FakeQuerier) GetTemplates(_ context.Context) ([]database.Template, erro
2092
2117
defer q .mutex .RUnlock ()
2093
2118
2094
2119
templates := slices .Clone (q .templates )
2095
- for i := range templates {
2096
- templates [i ] = templates [i ].DeepCopy ()
2097
- }
2098
- slices .SortFunc (templates , func (i , j database.Template ) bool {
2120
+ slices .SortFunc (templates , func (i , j database.TemplateTable ) bool {
2099
2121
if i .Name != j .Name {
2100
2122
return i .Name < j .Name
2101
2123
}
2102
2124
return i .ID .String () < j .ID .String ()
2103
2125
})
2104
2126
2105
- return templates , nil
2127
+ return q . templatesWithUserNoLock ( templates ) , nil
2106
2128
}
2107
2129
2108
2130
func (q * FakeQuerier ) GetTemplatesWithFilter (ctx context.Context , arg database.GetTemplatesWithFilterParams ) ([]database.Template , error ) {
@@ -3436,16 +3458,16 @@ func (q *FakeQuerier) InsertReplica(_ context.Context, arg database.InsertReplic
3436
3458
return replica , nil
3437
3459
}
3438
3460
3439
- func (q * FakeQuerier ) InsertTemplate (_ context.Context , arg database.InsertTemplateParams ) (database. Template , error ) {
3461
+ func (q * FakeQuerier ) InsertTemplate (_ context.Context , arg database.InsertTemplateParams ) error {
3440
3462
if err := validateDatabaseType (arg ); err != nil {
3441
- return database. Template {}, err
3463
+ return err
3442
3464
}
3443
3465
3444
3466
q .mutex .Lock ()
3445
3467
defer q .mutex .Unlock ()
3446
3468
3447
3469
//nolint:gosimple
3448
- template := database.Template {
3470
+ template := database.TemplateTable {
3449
3471
ID : arg .ID ,
3450
3472
CreatedAt : arg .CreatedAt ,
3451
3473
UpdatedAt : arg .UpdatedAt ,
@@ -3464,7 +3486,7 @@ func (q *FakeQuerier) InsertTemplate(_ context.Context, arg database.InsertTempl
3464
3486
AllowUserAutostop : true ,
3465
3487
}
3466
3488
q .templates = append (q .templates , template )
3467
- return template . DeepCopy (), nil
3489
+ return nil
3468
3490
}
3469
3491
3470
3492
func (q * FakeQuerier ) InsertTemplateVersion (_ context.Context , arg database.InsertTemplateVersionParams ) (database.TemplateVersion , error ) {
@@ -4172,9 +4194,9 @@ func (q *FakeQuerier) UpdateReplica(_ context.Context, arg database.UpdateReplic
4172
4194
return database.Replica {}, sql .ErrNoRows
4173
4195
}
4174
4196
4175
- func (q * FakeQuerier ) UpdateTemplateACLByID (_ context.Context , arg database.UpdateTemplateACLByIDParams ) (database. Template , error ) {
4197
+ func (q * FakeQuerier ) UpdateTemplateACLByID (_ context.Context , arg database.UpdateTemplateACLByIDParams ) error {
4176
4198
if err := validateDatabaseType (arg ); err != nil {
4177
- return database. Template {}, err
4199
+ return err
4178
4200
}
4179
4201
4180
4202
q .mutex .Lock ()
@@ -4186,11 +4208,11 @@ func (q *FakeQuerier) UpdateTemplateACLByID(_ context.Context, arg database.Upda
4186
4208
template .UserACL = arg .UserACL
4187
4209
4188
4210
q .templates [i ] = template
4189
- return template . DeepCopy (), nil
4211
+ return nil
4190
4212
}
4191
4213
}
4192
4214
4193
- return database. Template {}, sql .ErrNoRows
4215
+ return sql .ErrNoRows
4194
4216
}
4195
4217
4196
4218
func (q * FakeQuerier ) UpdateTemplateActiveVersionByID (_ context.Context , arg database.UpdateTemplateActiveVersionByIDParams ) error {
@@ -4233,9 +4255,9 @@ func (q *FakeQuerier) UpdateTemplateDeletedByID(_ context.Context, arg database.
4233
4255
return sql .ErrNoRows
4234
4256
}
4235
4257
4236
- func (q * FakeQuerier ) UpdateTemplateMetaByID (_ context.Context , arg database.UpdateTemplateMetaByIDParams ) (database. Template , error ) {
4258
+ func (q * FakeQuerier ) UpdateTemplateMetaByID (_ context.Context , arg database.UpdateTemplateMetaByIDParams ) error {
4237
4259
if err := validateDatabaseType (arg ); err != nil {
4238
- return database. Template {}, err
4260
+ return err
4239
4261
}
4240
4262
4241
4263
q .mutex .Lock ()
@@ -4251,15 +4273,15 @@ func (q *FakeQuerier) UpdateTemplateMetaByID(_ context.Context, arg database.Upd
4251
4273
tpl .Description = arg .Description
4252
4274
tpl .Icon = arg .Icon
4253
4275
q .templates [idx ] = tpl
4254
- return tpl . DeepCopy (), nil
4276
+ return nil
4255
4277
}
4256
4278
4257
- return database. Template {}, sql .ErrNoRows
4279
+ return sql .ErrNoRows
4258
4280
}
4259
4281
4260
- func (q * FakeQuerier ) UpdateTemplateScheduleByID (_ context.Context , arg database.UpdateTemplateScheduleByIDParams ) (database. Template , error ) {
4282
+ func (q * FakeQuerier ) UpdateTemplateScheduleByID (_ context.Context , arg database.UpdateTemplateScheduleByIDParams ) error {
4261
4283
if err := validateDatabaseType (arg ); err != nil {
4262
- return database. Template {}, err
4284
+ return err
4263
4285
}
4264
4286
4265
4287
q .mutex .Lock ()
@@ -4278,10 +4300,10 @@ func (q *FakeQuerier) UpdateTemplateScheduleByID(_ context.Context, arg database
4278
4300
tpl .InactivityTTL = arg .InactivityTTL
4279
4301
tpl .LockedTTL = arg .LockedTTL
4280
4302
q .templates [idx ] = tpl
4281
- return tpl . DeepCopy (), nil
4303
+ return nil
4282
4304
}
4283
4305
4284
- return database. Template {}, sql .ErrNoRows
4306
+ return sql .ErrNoRows
4285
4307
}
4286
4308
4287
4309
func (q * FakeQuerier ) UpdateTemplateVersionByID (_ context.Context , arg database.UpdateTemplateVersionByIDParams ) (database.TemplateVersion , error ) {
@@ -4984,7 +5006,8 @@ func (q *FakeQuerier) GetAuthorizedTemplates(ctx context.Context, arg database.G
4984
5006
}
4985
5007
4986
5008
var templates []database.Template
4987
- for _ , template := range q .templates {
5009
+ for _ , templateTable := range q .templates {
5010
+ template := q .templateWithUserNoLock (templateTable )
4988
5011
if prepared != nil && prepared .Authorize (ctx , template .RBACObject ()) != nil {
4989
5012
continue
4990
5013
}
@@ -5012,7 +5035,7 @@ func (q *FakeQuerier) GetAuthorizedTemplates(ctx context.Context, arg database.G
5012
5035
continue
5013
5036
}
5014
5037
}
5015
- templates = append (templates , template . DeepCopy () )
5038
+ templates = append (templates , template )
5016
5039
}
5017
5040
if len (templates ) > 0 {
5018
5041
slices .SortFunc (templates , func (i , j database.Template ) bool {
@@ -5031,7 +5054,7 @@ func (q *FakeQuerier) GetTemplateGroupRoles(_ context.Context, id uuid.UUID) ([]
5031
5054
q .mutex .RLock ()
5032
5055
defer q .mutex .RUnlock ()
5033
5056
5034
- var template database.Template
5057
+ var template database.TemplateTable
5035
5058
for _ , t := range q .templates {
5036
5059
if t .ID == id {
5037
5060
template = t
@@ -5068,7 +5091,7 @@ func (q *FakeQuerier) GetTemplateUserRoles(_ context.Context, id uuid.UUID) ([]d
5068
5091
q .mutex .RLock ()
5069
5092
defer q .mutex .RUnlock ()
5070
5093
5071
- var template database.Template
5094
+ var template database.TemplateTable
5072
5095
for _ , t := range q .templates {
5073
5096
if t .ID == id {
5074
5097
template = t
0 commit comments