Skip to content

Commit 0cba1da

Browse files
committed
dbmem impl
1 parent 94877ef commit 0cba1da

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func New() database.Store {
9292
workspaceAgentLogs: make([]database.WorkspaceAgentLog, 0),
9393
workspaceBuilds: make([]database.WorkspaceBuild, 0),
9494
workspaceApps: make([]database.WorkspaceApp, 0),
95+
workspaceAppAuditSessions: make([]database.WorkspaceAppAuditSession, 0),
9596
workspaces: make([]database.WorkspaceTable, 0),
9697
workspaceProxies: make([]database.WorkspaceProxy, 0),
9798
},
@@ -237,6 +238,7 @@ type data struct {
237238
workspaceAgentMemoryResourceMonitors []database.WorkspaceAgentMemoryResourceMonitor
238239
workspaceAgentVolumeResourceMonitors []database.WorkspaceAgentVolumeResourceMonitor
239240
workspaceApps []database.WorkspaceApp
241+
workspaceAppAuditSessions []database.WorkspaceAppAuditSession
240242
workspaceAppStatsLastInsertID int64
241243
workspaceAppStats []database.WorkspaceAppStat
242244
workspaceBuilds []database.WorkspaceBuild
@@ -9249,13 +9251,27 @@ func (q *FakeQuerier) InsertWorkspaceApp(_ context.Context, arg database.InsertW
92499251
return workspaceApp, nil
92509252
}
92519253

9252-
func (*FakeQuerier) InsertWorkspaceAppAuditSession(_ context.Context, arg database.InsertWorkspaceAppAuditSessionParams) (uuid.UUID, error) {
9254+
func (q *FakeQuerier) InsertWorkspaceAppAuditSession(_ context.Context, arg database.InsertWorkspaceAppAuditSessionParams) (uuid.UUID, error) {
92539255
err := validateDatabaseType(arg)
92549256
if err != nil {
92559257
return uuid.Nil, err
92569258
}
92579259

9258-
panic("not implemented")
9260+
q.mutex.Lock()
9261+
defer q.mutex.Unlock()
9262+
9263+
id := uuid.New()
9264+
q.workspaceAppAuditSessions = append(q.workspaceAppAuditSessions, database.WorkspaceAppAuditSession{
9265+
ID: id,
9266+
AgentID: arg.AgentID,
9267+
AppID: arg.AppID,
9268+
UserID: arg.UserID,
9269+
Ip: arg.Ip,
9270+
StartedAt: arg.StartedAt,
9271+
UpdatedAt: arg.UpdatedAt,
9272+
})
9273+
9274+
return id, nil
92599275
}
92609276

92619277
func (q *FakeQuerier) InsertWorkspaceAppStats(_ context.Context, arg database.InsertWorkspaceAppStatsParams) error {
@@ -11004,13 +11020,37 @@ func (q *FakeQuerier) UpdateWorkspaceAgentStartupByID(_ context.Context, arg dat
1100411020
return sql.ErrNoRows
1100511021
}
1100611022

11007-
func (*FakeQuerier) UpdateWorkspaceAppAuditSession(_ context.Context, arg database.UpdateWorkspaceAppAuditSessionParams) ([]uuid.UUID, error) {
11023+
func (q *FakeQuerier) UpdateWorkspaceAppAuditSession(_ context.Context, arg database.UpdateWorkspaceAppAuditSessionParams) ([]uuid.UUID, error) {
1100811024
err := validateDatabaseType(arg)
1100911025
if err != nil {
1101011026
return nil, err
1101111027
}
1101211028

11013-
panic("not implemented")
11029+
q.mutex.Lock()
11030+
defer q.mutex.Unlock()
11031+
11032+
var updated []uuid.UUID
11033+
for i, s := range q.workspaceAppAuditSessions {
11034+
if s.AgentID != arg.AgentID {
11035+
continue
11036+
}
11037+
if s.AppID != arg.AppID {
11038+
continue
11039+
}
11040+
if s.UserID != arg.UserID {
11041+
continue
11042+
}
11043+
if s.Ip.IPNet.String() != arg.Ip.IPNet.String() {
11044+
continue
11045+
}
11046+
staleTime := dbtime.Now().Add(-(time.Duration(arg.StaleIntervalMS) * time.Millisecond))
11047+
if !s.UpdatedAt.After(staleTime) {
11048+
continue
11049+
}
11050+
q.workspaceAppAuditSessions[i].UpdatedAt = arg.UpdatedAt
11051+
updated = append(updated, s.ID)
11052+
}
11053+
return updated, nil
1101411054
}
1101511055

1101611056
func (q *FakeQuerier) UpdateWorkspaceAppHealthByID(_ context.Context, arg database.UpdateWorkspaceAppHealthByIDParams) error {

0 commit comments

Comments
 (0)