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

Commite24c3fb

Browse files
committed
Database implementation
Signed-off-by: Danny Kopping <danny@coder.com>
1 parent09f82b4 commite24c3fb

25 files changed

+810
-15
lines changed

‎coderd/apidoc/docs.go

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

‎coderd/apidoc/swagger.json

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

‎coderd/coderd.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,6 +1247,17 @@ func New(options *Options) *API {
12471247
r.Get("/settings",api.notificationsSettings)
12481248
r.Put("/settings",api.putNotificationsSettings)
12491249
})
1250+
r.Route("/frobulators",func(r chi.Router) {
1251+
r.Use(apiKeyMiddleware)
1252+
r.Get("/",api.listAllFrobulators)
1253+
r.Route("/{user}",func(r chi.Router) {
1254+
r.Use(
1255+
httpmw.ExtractUserParam(options.Database),
1256+
)
1257+
r.Get("/",api.listUserFrobulators)
1258+
r.Post("/",api.createFrobulator)
1259+
})
1260+
})
12501261
})
12511262

12521263
ifoptions.SwaggerEndpoint {

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,6 +1204,13 @@ func (q *querier) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context, temp
12041204
returnq.db.GetActiveWorkspaceBuildsByTemplateID(ctx,templateID)
12051205
}
12061206

1207+
func (q*querier)GetAllFrobulators(ctx context.Context) ([]database.Frobulator,error) {
1208+
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceFrobulator);err!=nil {
1209+
returnnil,err
1210+
}
1211+
returnq.db.GetAllFrobulators(ctx)
1212+
}
1213+
12071214
func (q*querier)GetAllTailnetAgents(ctx context.Context) ([]database.TailnetAgent,error) {
12081215
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceTailnetCoordinator);err!=nil {
12091216
return []database.TailnetAgent{},err
@@ -2052,6 +2059,13 @@ func (q *querier) GetUserCount(ctx context.Context) (int64, error) {
20522059
returnq.db.GetUserCount(ctx)
20532060
}
20542061

2062+
func (q*querier)GetUserFrobulators(ctx context.Context,userID uuid.UUID) ([]database.Frobulator,error) {
2063+
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceFrobulator.WithOwner(userID.String()));err!=nil {
2064+
returnnil,err
2065+
}
2066+
returnq.db.GetUserFrobulators(ctx,userID)
2067+
}
2068+
20552069
func (q*querier)GetUserLatencyInsights(ctx context.Context,arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow,error) {
20562070
// Used by insights endpoints. Need to check both for auditors and for regular users with template acl perms.
20572071
iferr:=q.authorizeContext(ctx,policy.ActionViewInsights,rbac.ResourceTemplate);err!=nil {
@@ -2537,6 +2551,14 @@ func (q *querier) InsertFile(ctx context.Context, arg database.InsertFileParams)
25372551
returninsert(q.log,q.auth,rbac.ResourceFile.WithOwner(arg.CreatedBy.String()),q.db.InsertFile)(ctx,arg)
25382552
}
25392553

2554+
func (q*querier)InsertFrobulator(ctx context.Context,arg database.InsertFrobulatorParams)error {
2555+
iferr:=q.authorizeContext(ctx,policy.ActionCreate,rbac.ResourceFrobulator.WithOwner(arg.UserID.String()));err!=nil {
2556+
returnerr
2557+
}
2558+
2559+
returnq.db.InsertFrobulator(ctx,arg)
2560+
}
2561+
25402562
func (q*querier)InsertGitSSHKey(ctx context.Context,arg database.InsertGitSSHKeyParams) (database.GitSSHKey,error) {
25412563
returninsertWithAction(q.log,q.auth,rbac.ResourceUser.WithOwner(arg.UserID.String()).WithID(arg.UserID),policy.ActionUpdatePersonal,q.db.InsertGitSSHKey)(ctx,arg)
25422564
}

‎coderd/database/dbmem/dbmem.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func New() database.Store {
6262
groups:make([]database.Group,0),
6363
groupMembers:make([]database.GroupMember,0),
6464
auditLogs:make([]database.AuditLog,0),
65+
frobulators:make([]database.Frobulator,0),
6566
files:make([]database.File,0),
6667
gitSSHKey:make([]database.GitSSHKey,0),
6768
notificationMessages:make([]database.NotificationMessage,0),
@@ -192,6 +193,7 @@ type data struct {
192193
workspaces []database.Workspace
193194
workspaceProxies []database.WorkspaceProxy
194195
customRoles []database.CustomRole
196+
frobulators []database.Frobulator
195197
// Locks is a map of lock names. Any keys within the map are currently
196198
// locked.
197199
locksmap[int64]struct{}
@@ -2047,6 +2049,13 @@ func (q *FakeQuerier) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context,
20472049
returnfilteredBuilds,nil
20482050
}
20492051

2052+
func (q*FakeQuerier)GetAllFrobulators(_ context.Context) ([]database.Frobulator,error) {
2053+
q.mutex.RLock()
2054+
deferq.mutex.RUnlock()
2055+
2056+
returnq.frobulators,nil
2057+
}
2058+
20502059
func (*FakeQuerier)GetAllTailnetAgents(_ context.Context) ([]database.TailnetAgent,error) {
20512060
returnnil,ErrUnimplemented
20522061
}
@@ -4838,6 +4847,22 @@ func (q *FakeQuerier) GetUserCount(_ context.Context) (int64, error) {
48384847
returnexisting,nil
48394848
}
48404849

4850+
func (q*FakeQuerier)GetUserFrobulators(_ context.Context,userID uuid.UUID) ([]database.Frobulator,error) {
4851+
q.mutex.RLock()
4852+
deferq.mutex.RUnlock()
4853+
4854+
out:=make([]database.Frobulator,0,len(q.frobulators))
4855+
for_,frob:=rangeq.frobulators {
4856+
iffrob.UserID!=userID {
4857+
continue
4858+
}
4859+
4860+
out=append(out,frob)
4861+
}
4862+
4863+
returnout,nil
4864+
}
4865+
48414866
func (q*FakeQuerier)GetUserLatencyInsights(_ context.Context,arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow,error) {
48424867
err:=validateDatabaseType(arg)
48434868
iferr!=nil {
@@ -6217,6 +6242,25 @@ func (q *FakeQuerier) InsertFile(_ context.Context, arg database.InsertFileParam
62176242
returnfile,nil
62186243
}
62196244

6245+
func (q*FakeQuerier)InsertFrobulator(_ context.Context,arg database.InsertFrobulatorParams)error {
6246+
err:=validateDatabaseType(arg)
6247+
iferr!=nil {
6248+
returnerr
6249+
}
6250+
6251+
q.mutex.Lock()
6252+
deferq.mutex.Unlock()
6253+
6254+
// nolint:gosimple // This is fine as it is.
6255+
q.frobulators=append(q.frobulators, database.Frobulator{
6256+
ID:arg.ID,
6257+
UserID:arg.UserID,
6258+
ModelNumber:arg.ModelNumber,
6259+
})
6260+
6261+
returnnil
6262+
}
6263+
62206264
func (q*FakeQuerier)InsertGitSSHKey(_ context.Context,arg database.InsertGitSSHKeyParams) (database.GitSSHKey,error) {
62216265
iferr:=validateDatabaseType(arg);err!=nil {
62226266
return database.GitSSHKey{},err

‎coderd/database/dbmetrics/dbmetrics.go

Lines changed: 21 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: 44 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