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

Commit9789693

Browse files
committed
feat: database tables & queries
1 parentc4f1676 commit9789693

File tree

17 files changed

+1005
-0
lines changed

17 files changed

+1005
-0
lines changed

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,13 @@ func (q *querier) AcquireLock(ctx context.Context, id int64) error {
817817
returnq.db.AcquireLock(ctx,id)
818818
}
819819

820+
func (q*querier)AcquireNotificationMessages(ctx context.Context,arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow,error) {
821+
iferr:=q.authorizeContext(ctx,policy.ActionUpdate,rbac.ResourceSystem);err!=nil {
822+
returnnil,err
823+
}
824+
returnq.db.AcquireNotificationMessages(ctx,arg)
825+
}
826+
820827
// TODO: We need to create a ProvisionerJob resource type
821828
func (q*querier)AcquireProvisionerJob(ctx context.Context,arg database.AcquireProvisionerJobParams) (database.ProvisionerJob,error) {
822829
// if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {
@@ -861,6 +868,20 @@ func (q *querier) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg databa
861868
returnq.db.BatchUpdateWorkspaceLastUsedAt(ctx,arg)
862869
}
863870

871+
func (q*querier)BulkMarkNotificationMessagesFailed(ctx context.Context,arg database.BulkMarkNotificationMessagesFailedParams) (int64,error) {
872+
iferr:=q.authorizeContext(ctx,policy.ActionUpdate,rbac.ResourceSystem);err!=nil {
873+
return0,err
874+
}
875+
returnq.db.BulkMarkNotificationMessagesFailed(ctx,arg)
876+
}
877+
878+
func (q*querier)BulkMarkNotificationMessagesSent(ctx context.Context,arg database.BulkMarkNotificationMessagesSentParams) (int64,error) {
879+
iferr:=q.authorizeContext(ctx,policy.ActionUpdate,rbac.ResourceSystem);err!=nil {
880+
return0,err
881+
}
882+
returnq.db.BulkMarkNotificationMessagesSent(ctx,arg)
883+
}
884+
864885
func (q*querier)CleanTailnetCoordinators(ctx context.Context)error {
865886
iferr:=q.authorizeContext(ctx,policy.ActionDelete,rbac.ResourceTailnetCoordinator);err!=nil {
866887
returnerr
@@ -1010,6 +1031,13 @@ func (q *querier) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Contex
10101031
returnq.db.DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx,arg)
10111032
}
10121033

1034+
func (q*querier)DeleteOldNotificationMessages(ctx context.Context)error {
1035+
iferr:=q.authorizeContext(ctx,policy.ActionDelete,rbac.ResourceSystem);err!=nil {
1036+
returnerr
1037+
}
1038+
returnq.db.DeleteOldNotificationMessages(ctx)
1039+
}
1040+
10131041
func (q*querier)DeleteOldProvisionerDaemons(ctx context.Context)error {
10141042
iferr:=q.authorizeContext(ctx,policy.ActionDelete,rbac.ResourceSystem);err!=nil {
10151043
returnerr
@@ -1114,13 +1142,27 @@ func (q *querier) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context,
11141142
returnq.db.DeleteWorkspaceAgentPortSharesByTemplate(ctx,templateID)
11151143
}
11161144

1145+
func (q*querier)EnqueueNotificationMessage(ctx context.Context,arg database.EnqueueNotificationMessageParams) (database.NotificationMessage,error) {
1146+
iferr:=q.authorizeContext(ctx,policy.ActionCreate,rbac.ResourceSystem);err!=nil {
1147+
return database.NotificationMessage{},err
1148+
}
1149+
returnq.db.EnqueueNotificationMessage(ctx,arg)
1150+
}
1151+
11171152
func (q*querier)FavoriteWorkspace(ctx context.Context,id uuid.UUID)error {
11181153
fetch:=func(ctx context.Context,id uuid.UUID) (database.Workspace,error) {
11191154
returnq.db.GetWorkspaceByID(ctx,id)
11201155
}
11211156
returnupdate(q.log,q.auth,fetch,q.db.FavoriteWorkspace)(ctx,id)
11221157
}
11231158

1159+
func (q*querier)FetchNewMessageMetadata(ctx context.Context,arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow,error) {
1160+
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceSystem);err!=nil {
1161+
return database.FetchNewMessageMetadataRow{},err
1162+
}
1163+
returnq.db.FetchNewMessageMetadata(ctx,arg)
1164+
}
1165+
11241166
func (q*querier)GetAPIKeyByID(ctx context.Context,idstring) (database.APIKey,error) {
11251167
returnfetch(q.log,q.auth,q.db.GetAPIKeyByID)(ctx,id)
11261168
}

‎coderd/database/dbauthz/dbauthz_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2467,6 +2467,32 @@ func (s *MethodTestSuite) TestSystemFunctions() {
24672467
AgentID:uuid.New(),
24682468
}).Asserts(tpl,policy.ActionCreate)
24692469
}))
2470+
s.Run("AcquireNotificationMessages",s.Subtest(func(db database.Store,check*expects) {
2471+
// TODO: update this test once we have a specific role for notifications
2472+
check.Args(database.AcquireNotificationMessagesParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2473+
}))
2474+
s.Run("BulkMarkNotificationMessagesFailed",s.Subtest(func(db database.Store,check*expects) {
2475+
// TODO: update this test once we have a specific role for notifications
2476+
check.Args(database.BulkMarkNotificationMessagesFailedParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2477+
}))
2478+
s.Run("BulkMarkNotificationMessagesSent",s.Subtest(func(db database.Store,check*expects) {
2479+
// TODO: update this test once we have a specific role for notifications
2480+
check.Args(database.BulkMarkNotificationMessagesSentParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2481+
}))
2482+
s.Run("DeleteOldNotificationMessages",s.Subtest(func(db database.Store,check*expects) {
2483+
// TODO: update this test once we have a specific role for notifications
2484+
check.Args().Asserts(rbac.ResourceSystem,policy.ActionDelete)
2485+
}))
2486+
s.Run("EnqueueNotificationMessage",s.Subtest(func(db database.Store,check*expects) {
2487+
// TODO: update this test once we have a specific role for notifications
2488+
check.Args(database.EnqueueNotificationMessageParams{
2489+
Method:database.NotificationMethodWebhook,
2490+
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
2491+
}))
2492+
s.Run("FetchNewMessageMetadata",s.Subtest(func(db database.Store,check*expects) {
2493+
// TODO: update this test once we have a specific role for notifications
2494+
check.Args(database.FetchNewMessageMetadataParams{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
2495+
}))
24702496
}
24712497

24722498
func (s*MethodTestSuite)TestOAuth2ProviderApps() {

‎coderd/database/dbmem/dbmem.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -907,6 +907,15 @@ func (*FakeQuerier) AcquireLock(_ context.Context, _ int64) error {
907907
returnxerrors.New("AcquireLock must only be called within a transaction")
908908
}
909909

910+
func (*FakeQuerier)AcquireNotificationMessages(_ context.Context,arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow,error) {
911+
err:=validateDatabaseType(arg)
912+
iferr!=nil {
913+
returnnil,err
914+
}
915+
// nolint:nilnil // Irrelevant.
916+
returnnil,nil
917+
}
918+
910919
func (q*FakeQuerier)AcquireProvisionerJob(_ context.Context,arg database.AcquireProvisionerJobParams) (database.ProvisionerJob,error) {
911920
iferr:=validateDatabaseType(arg);err!=nil {
912921
return database.ProvisionerJob{},err
@@ -1169,6 +1178,22 @@ func (q *FakeQuerier) BatchUpdateWorkspaceLastUsedAt(_ context.Context, arg data
11691178
returnnil
11701179
}
11711180

1181+
func (*FakeQuerier)BulkMarkNotificationMessagesFailed(_ context.Context,arg database.BulkMarkNotificationMessagesFailedParams) (int64,error) {
1182+
err:=validateDatabaseType(arg)
1183+
iferr!=nil {
1184+
return0,err
1185+
}
1186+
return-1,nil
1187+
}
1188+
1189+
func (*FakeQuerier)BulkMarkNotificationMessagesSent(_ context.Context,arg database.BulkMarkNotificationMessagesSentParams) (int64,error) {
1190+
err:=validateDatabaseType(arg)
1191+
iferr!=nil {
1192+
return0,err
1193+
}
1194+
return-1,nil
1195+
}
1196+
11721197
func (*FakeQuerier)CleanTailnetCoordinators(_ context.Context)error {
11731198
returnErrUnimplemented
11741199
}
@@ -1504,6 +1529,10 @@ func (q *FakeQuerier) DeleteOAuth2ProviderAppTokensByAppAndUserID(_ context.Cont
15041529
returnnil
15051530
}
15061531

1532+
func (*FakeQuerier)DeleteOldNotificationMessages(_ context.Context)error {
1533+
returnnil
1534+
}
1535+
15071536
func (q*FakeQuerier)DeleteOldProvisionerDaemons(_ context.Context)error {
15081537
q.mutex.Lock()
15091538
deferq.mutex.Unlock()
@@ -1737,6 +1766,14 @@ func (q *FakeQuerier) DeleteWorkspaceAgentPortSharesByTemplate(_ context.Context
17371766
returnnil
17381767
}
17391768

1769+
func (*FakeQuerier)EnqueueNotificationMessage(_ context.Context,arg database.EnqueueNotificationMessageParams) (database.NotificationMessage,error) {
1770+
err:=validateDatabaseType(arg)
1771+
iferr!=nil {
1772+
return database.NotificationMessage{},err
1773+
}
1774+
return database.NotificationMessage{},nil
1775+
}
1776+
17401777
func (q*FakeQuerier)FavoriteWorkspace(_ context.Context,arg uuid.UUID)error {
17411778
err:=validateDatabaseType(arg)
17421779
iferr!=nil {
@@ -1756,6 +1793,14 @@ func (q *FakeQuerier) FavoriteWorkspace(_ context.Context, arg uuid.UUID) error
17561793
returnnil
17571794
}
17581795

1796+
func (*FakeQuerier)FetchNewMessageMetadata(_ context.Context,arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow,error) {
1797+
err:=validateDatabaseType(arg)
1798+
iferr!=nil {
1799+
return database.FetchNewMessageMetadataRow{},err
1800+
}
1801+
return database.FetchNewMessageMetadataRow{},nil
1802+
}
1803+
17591804
func (q*FakeQuerier)GetAPIKeyByID(_ context.Context,idstring) (database.APIKey,error) {
17601805
q.mutex.RLock()
17611806
deferq.mutex.RUnlock()

‎coderd/database/dbmetrics/dbmetrics.go

Lines changed: 42 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: 89 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp