Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit32321c4

Browse files
committed
add queries to pin/unpin workspace
1 parent78d0385 commit32321c4

File tree

8 files changed

+151
-0
lines changed

8 files changed

+151
-0
lines changed

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2475,6 +2475,13 @@ func (q *querier) InsertWorkspaceResourceMetadata(ctx context.Context, arg datab
24752475
returnq.db.InsertWorkspaceResourceMetadata(ctx,arg)
24762476
}
24772477

2478+
func (q*querier)PinWorkspace(ctx context.Context,arg database.PinWorkspaceParams)error {
2479+
if_,err:=q.GetWorkspaceByID(ctx,arg.WorkspaceID);err!=nil {
2480+
returnerr
2481+
}
2482+
returnq.db.PinWorkspace(ctx,arg)
2483+
}
2484+
24782485
func (q*querier)RegisterWorkspaceProxy(ctx context.Context,arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy,error) {
24792486
fetch:=func(ctx context.Context,arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy,error) {
24802487
returnq.db.GetWorkspaceProxyByID(ctx,arg.ID)
@@ -2509,6 +2516,13 @@ func (q *querier) UnarchiveTemplateVersion(ctx context.Context, arg database.Una
25092516
returnq.db.UnarchiveTemplateVersion(ctx,arg)
25102517
}
25112518

2519+
func (q*querier)UnpinWorkspace(ctx context.Context,arg database.UnpinWorkspaceParams)error {
2520+
if_,err:=q.GetWorkspaceByID(ctx,arg.WorkspaceID);err!=nil {
2521+
returnerr
2522+
}
2523+
returnq.db.UnpinWorkspace(ctx,arg)
2524+
}
2525+
25122526
func (q*querier)UpdateAPIKeyByID(ctx context.Context,arg database.UpdateAPIKeyByIDParams)error {
25132527
fetch:=func(ctx context.Context,arg database.UpdateAPIKeyByIDParams) (database.APIKey,error) {
25142528
returnq.db.GetAPIKeyByID(ctx,arg.ID)

‎coderd/database/dbauthz/dbauthz_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,6 +1578,22 @@ func (s *MethodTestSuite) TestWorkspace() {
15781578
WorkspaceID:ws.ID,
15791579
}).Asserts(ws,rbac.ActionUpdate).Returns()
15801580
}))
1581+
s.Run("PinWorkspace",s.Subtest(func(db database.Store,check*expects) {
1582+
u:=dbgen.User(s.T(),db, database.User{})
1583+
ws:=dbgen.Workspace(s.T(),db, database.Workspace{OwnerID:u.ID})
1584+
check.Args(database.PinWorkspaceParams{
1585+
UserID:u.ID,
1586+
WorkspaceID:ws.ID,
1587+
}).Asserts(ws,rbac.ActionRead).Returns()
1588+
}))
1589+
s.Run("UnpinWorkspace",s.Subtest(func(db database.Store,check*expects) {
1590+
u:=dbgen.User(s.T(),db, database.User{})
1591+
ws:=dbgen.Workspace(s.T(),db, database.Workspace{OwnerID:u.ID})
1592+
check.Args(database.UnpinWorkspaceParams{
1593+
UserID:u.ID,
1594+
WorkspaceID:ws.ID,
1595+
}).Asserts(ws,rbac.ActionRead).Returns()
1596+
}))
15811597
}
15821598

15831599
func (s*MethodTestSuite)TestExtraMethods() {

‎coderd/database/dbmem/dbmem.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ func New() database.Store {
7171
workspaceBuilds:make([]database.WorkspaceBuildTable,0),
7272
workspaceApps:make([]database.WorkspaceApp,0),
7373
workspaces:make([]database.Workspace,0),
74+
userPinnedWorkspaces:make([]database.UserPinnedWorkspace,0),
7475
licenses:make([]database.License,0),
7576
workspaceProxies:make([]database.WorkspaceProxy,0),
7677
locks:map[int64]struct{}{},
@@ -154,6 +155,7 @@ type data struct {
154155
workspaceResourceMetadata []database.WorkspaceResourceMetadatum
155156
workspaceResources []database.WorkspaceResource
156157
workspaces []database.Workspace
158+
userPinnedWorkspaces []database.UserPinnedWorkspace
157159
workspaceProxies []database.WorkspaceProxy
158160
// Locks is a map of lock names. Any keys within the map are currently
159161
// locked.
@@ -5901,6 +5903,23 @@ func (q *FakeQuerier) InsertWorkspaceResourceMetadata(_ context.Context, arg dat
59015903
returnmetadata,nil
59025904
}
59035905

5906+
func (q*FakeQuerier)PinWorkspace(_ context.Context,arg database.PinWorkspaceParams)error {
5907+
err:=validateDatabaseType(arg)
5908+
iferr!=nil {
5909+
returnerr
5910+
}
5911+
5912+
q.mutex.Lock()
5913+
deferq.mutex.Unlock()
5914+
5915+
for_,upw:=rangeq.userPinnedWorkspaces {
5916+
ifarg.UserID==upw.UserID&&arg.WorkspaceID==upw.WorkspaceID {
5917+
returnerrDuplicateKey
5918+
}
5919+
}
5920+
returnnil
5921+
}
5922+
59045923
func (q*FakeQuerier)RegisterWorkspaceProxy(_ context.Context,arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy,error) {
59055924
q.mutex.Lock()
59065925
deferq.mutex.Unlock()
@@ -5984,6 +6003,30 @@ func (q *FakeQuerier) UnarchiveTemplateVersion(_ context.Context, arg database.U
59846003
returnsql.ErrNoRows
59856004
}
59866005

6006+
func (q*FakeQuerier)UnpinWorkspace(_ context.Context,arg database.UnpinWorkspaceParams)error {
6007+
err:=validateDatabaseType(arg)
6008+
iferr!=nil {
6009+
returnerr
6010+
}
6011+
6012+
q.mutex.Lock()
6013+
deferq.mutex.Unlock()
6014+
6015+
forindex,upw:=rangeq.userPinnedWorkspaces {
6016+
ifupw.UserID!=arg.UserID {
6017+
continue
6018+
}
6019+
ifupw.WorkspaceID!=arg.WorkspaceID {
6020+
continue
6021+
}
6022+
q.userPinnedWorkspaces[index]=q.userPinnedWorkspaces[len(q.apiKeys)-1]
6023+
q.userPinnedWorkspaces=q.userPinnedWorkspaces[:len(q.userPinnedWorkspaces)-1]
6024+
returnnil
6025+
}
6026+
6027+
returnnil
6028+
}
6029+
59876030
func (q*FakeQuerier)UpdateAPIKeyByID(_ context.Context,arg database.UpdateAPIKeyByIDParams)error {
59886031
iferr:=validateDatabaseType(arg);err!=nil {
59896032
returnerr

‎coderd/database/dbmetrics/dbmetrics.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/dbmock/dbmock.go

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/querier.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries.sql.go

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/workspaces.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,3 +547,9 @@ SET
547547
automatic_updates= $2
548548
WHERE
549549
id= $1;
550+
551+
-- name: PinWorkspace :exec
552+
INSERT INTO user_pinned_workspaces (user_id, workspace_id)VALUES (sqlc.arg(user_id),sqlc.arg(workspace_id));
553+
554+
-- name: UnpinWorkspace :exec
555+
DELETEFROM user_pinned_workspacesWHERE user_id=sqlc.arg(user_id)AND workspace_id=sqlc.arg(workspace_id);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp