55
55
func (api * API ) workspace (rw http.ResponseWriter , r * http.Request ) {
56
56
ctx := r .Context ()
57
57
workspace := httpmw .WorkspaceParam (r )
58
+ apiKey := httpmw .APIKey (r )
58
59
59
60
var (
60
61
deletedStr = r .URL .Query ().Get ("include_deleted" )
@@ -102,6 +103,7 @@ func (api *API) workspace(rw http.ResponseWriter, r *http.Request) {
102
103
return
103
104
}
104
105
httpapi .Write (ctx , rw , http .StatusOK , convertWorkspace (
106
+ apiKey .UserID ,
105
107
workspace ,
106
108
data .builds [0 ],
107
109
data .templates [0 ],
@@ -184,7 +186,7 @@ func (api *API) workspaces(rw http.ResponseWriter, r *http.Request) {
184
186
return
185
187
}
186
188
187
- wss , err := convertWorkspaces (workspaces , data )
189
+ wss , err := convertWorkspaces (apiKey . UserID , workspaces , data )
188
190
if err != nil {
189
191
httpapi .Write (ctx , rw , http .StatusInternalServerError , codersdk.Response {
190
192
Message : "Internal error converting workspaces." ,
@@ -213,6 +215,7 @@ func (api *API) workspaceByOwnerAndName(rw http.ResponseWriter, r *http.Request)
213
215
ctx := r .Context ()
214
216
owner := httpmw .UserParam (r )
215
217
workspaceName := chi .URLParam (r , "workspacename" )
218
+ apiKey := httpmw .APIKey (r )
216
219
217
220
includeDeleted := false
218
221
if s := r .URL .Query ().Get ("include_deleted" ); s != "" {
@@ -274,6 +277,7 @@ func (api *API) workspaceByOwnerAndName(rw http.ResponseWriter, r *http.Request)
274
277
return
275
278
}
276
279
httpapi .Write (ctx , rw , http .StatusOK , convertWorkspace (
280
+ apiKey .UserID ,
277
281
workspace ,
278
282
data .builds [0 ],
279
283
data .templates [0 ],
@@ -583,6 +587,7 @@ func (api *API) postWorkspacesByOrganization(rw http.ResponseWriter, r *http.Req
583
587
}
584
588
585
589
httpapi .Write (ctx , rw , http .StatusCreated , convertWorkspace (
590
+ apiKey .UserID ,
586
591
workspace ,
587
592
apiBuild ,
588
593
template ,
@@ -854,6 +859,7 @@ func (api *API) putWorkspaceDormant(rw http.ResponseWriter, r *http.Request) {
854
859
var (
855
860
ctx = r .Context ()
856
861
workspace = httpmw .WorkspaceParam (r )
862
+ apiKey = httpmw .APIKey (r )
857
863
oldWorkspace = workspace
858
864
auditor = api .Auditor .Load ()
859
865
aReq , commitAudit = audit .InitRequest [database.Workspace ](rw , & audit.RequestParams {
@@ -922,6 +928,7 @@ func (api *API) putWorkspaceDormant(rw http.ResponseWriter, r *http.Request) {
922
928
923
929
aReq .New = workspace
924
930
httpapi .Write (ctx , rw , http .StatusOK , convertWorkspace (
931
+ apiKey .UserID ,
925
932
workspace ,
926
933
data .builds [0 ],
927
934
data .templates [0 ],
@@ -1262,6 +1269,7 @@ func (api *API) resolveAutostart(rw http.ResponseWriter, r *http.Request) {
1262
1269
func (api * API ) watchWorkspace (rw http.ResponseWriter , r * http.Request ) {
1263
1270
ctx := r .Context ()
1264
1271
workspace := httpmw .WorkspaceParam (r )
1272
+ apiKey := httpmw .APIKey (r )
1265
1273
1266
1274
sendEvent , senderClosed , err := httpapi .ServerSentEventSender (rw , r )
1267
1275
if err != nil {
@@ -1324,6 +1332,7 @@ func (api *API) watchWorkspace(rw http.ResponseWriter, r *http.Request) {
1324
1332
_ = sendEvent (ctx , codersdk.ServerSentEvent {
1325
1333
Type : codersdk .ServerSentEventTypeData ,
1326
1334
Data : convertWorkspace (
1335
+ apiKey .UserID ,
1327
1336
workspace ,
1328
1337
data .builds [0 ],
1329
1338
data .templates [0 ],
@@ -1442,7 +1451,7 @@ func (api *API) workspaceData(ctx context.Context, workspaces []database.Workspa
1442
1451
}, nil
1443
1452
}
1444
1453
1445
- func convertWorkspaces (workspaces []database.Workspace , data workspaceData ) ([]codersdk.Workspace , error ) {
1454
+ func convertWorkspaces (requestorID uuid. UUID , workspaces []database.Workspace , data workspaceData ) ([]codersdk.Workspace , error ) {
1446
1455
buildByWorkspaceID := map [uuid.UUID ]codersdk.WorkspaceBuild {}
1447
1456
for _ , workspaceBuild := range data .builds {
1448
1457
buildByWorkspaceID [workspaceBuild .WorkspaceID ] = workspaceBuild
@@ -1477,6 +1486,7 @@ func convertWorkspaces(workspaces []database.Workspace, data workspaceData) ([]c
1477
1486
}
1478
1487
1479
1488
apiWorkspaces = append (apiWorkspaces , convertWorkspace (
1489
+ requestorID ,
1480
1490
workspace ,
1481
1491
build ,
1482
1492
template ,
@@ -1488,6 +1498,7 @@ func convertWorkspaces(workspaces []database.Workspace, data workspaceData) ([]c
1488
1498
}
1489
1499
1490
1500
func convertWorkspace (
1501
+ requestorID uuid.UUID ,
1491
1502
workspace database.Workspace ,
1492
1503
workspaceBuild codersdk.WorkspaceBuild ,
1493
1504
template database.Template ,
@@ -1519,6 +1530,7 @@ func convertWorkspace(
1519
1530
}
1520
1531
1521
1532
ttlMillis := convertWorkspaceTTLMillis (workspace .Ttl )
1533
+ requestorFavorite := workspace .FavoriteOf .UUID == requestorID
1522
1534
1523
1535
return codersdk.Workspace {
1524
1536
ID : workspace .ID ,
@@ -1548,7 +1560,7 @@ func convertWorkspace(
1548
1560
},
1549
1561
AutomaticUpdates : codersdk .AutomaticUpdates (workspace .AutomaticUpdates ),
1550
1562
AllowRenames : allowRenames ,
1551
- // Pinned: pinned, // TODO
1563
+ Favorite : requestorFavorite ,
1552
1564
}
1553
1565
}
1554
1566
0 commit comments