Skip to content

Commit 832bf38

Browse files
committed
notifications
1 parent 01409ca commit 832bf38

File tree

8 files changed

+2549
-172
lines changed

8 files changed

+2549
-172
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,18 +1137,18 @@ func (q *querier) DeleteOldNotificationMessages(ctx context.Context) error {
11371137
return q.db.DeleteOldNotificationMessages(ctx)
11381138
}
11391139

1140-
func (q *querier) DeleteOldProvisionerDaemons(ctx context.Context) error {
1140+
func (q *querier) DeleteOldNotificationReportGeneratorLogs(ctx context.Context, arg database.DeleteOldNotificationReportGeneratorLogsParams) error {
11411141
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceSystem); err != nil {
11421142
return err
11431143
}
1144-
return q.db.DeleteOldProvisionerDaemons(ctx)
1144+
return q.db.DeleteOldNotificationReportGeneratorLogs(ctx, arg)
11451145
}
11461146

1147-
func (q *querier) DeleteOldNotificationReportGeneratorLogs(ctx context.Context, arg database.DeleteOldNotificationReportGeneratorLogsParams) error {
1147+
func (q *querier) DeleteOldProvisionerDaemons(ctx context.Context) error {
11481148
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceSystem); err != nil {
11491149
return err
11501150
}
1151-
return q.db.DeleteOldNotificationReportGeneratorLogs(ctx, arg)
1151+
return q.db.DeleteOldProvisionerDaemons(ctx)
11521152
}
11531153

11541154
func (q *querier) DeleteOldWorkspaceAgentLogs(ctx context.Context, threshold time.Time) error {
@@ -1613,6 +1613,13 @@ func (q *querier) GetNotificationMessagesByStatus(ctx context.Context, arg datab
16131613
return q.db.GetNotificationMessagesByStatus(ctx, arg)
16141614
}
16151615

1616+
func (q *querier) GetNotificationReportGeneratorLogByUserAndTemplate(ctx context.Context, arg database.GetNotificationReportGeneratorLogByUserAndTemplateParams) (database.ReportGeneratorLog, error) {
1617+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
1618+
return database.ReportGeneratorLog{}, err
1619+
}
1620+
return q.db.GetNotificationReportGeneratorLogByUserAndTemplate(ctx, arg)
1621+
}
1622+
16161623
func (q *querier) GetNotificationTemplateByID(ctx context.Context, id uuid.UUID) (database.NotificationTemplate, error) {
16171624
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceNotificationTemplate); err != nil {
16181625
return database.NotificationTemplate{}, err
@@ -1877,13 +1884,6 @@ func (q *querier) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Ti
18771884
return q.db.GetReplicasUpdatedAfter(ctx, updatedAt)
18781885
}
18791886

1880-
func (q *querier) GetNotificationReportGeneratorLogByUserAndTemplate(ctx context.Context, arg database.GetNotificationReportGeneratorLogByUserAndTemplateParams) (database.ReportGeneratorLog, error) {
1881-
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
1882-
return database.ReportGeneratorLog{}, err
1883-
}
1884-
return q.db.GetNotificationReportGeneratorLogByUserAndTemplate(ctx, arg)
1885-
}
1886-
18871887
func (q *querier) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
18881888
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
18891889
return "", err
@@ -3939,6 +3939,13 @@ func (q *querier) UpsertLogoURL(ctx context.Context, value string) error {
39393939
return q.db.UpsertLogoURL(ctx, value)
39403940
}
39413941

3942+
func (q *querier) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
3943+
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil {
3944+
return err
3945+
}
3946+
return q.db.UpsertNotificationReportGeneratorLog(ctx, arg)
3947+
}
3948+
39423949
func (q *querier) UpsertNotificationsSettings(ctx context.Context, value string) error {
39433950
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceDeploymentConfig); err != nil {
39443951
return err
@@ -3964,13 +3971,6 @@ func (q *querier) UpsertProvisionerDaemon(ctx context.Context, arg database.Upse
39643971
return q.db.UpsertProvisionerDaemon(ctx, arg)
39653972
}
39663973

3967-
func (q *querier) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
3968-
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil {
3969-
return err
3970-
}
3971-
return q.db.UpsertNotificationReportGeneratorLog(ctx, arg)
3972-
}
3973-
39743974
func (q *querier) UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error {
39753975
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil {
39763976
return err

coderd/database/dbmem/dbmem.go

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,20 @@ func (*FakeQuerier) DeleteOldNotificationMessages(_ context.Context) error {
16901690
return nil
16911691
}
16921692

1693+
func (q *FakeQuerier) DeleteOldNotificationReportGeneratorLogs(_ context.Context, params database.DeleteOldNotificationReportGeneratorLogsParams) error {
1694+
q.mutex.Lock()
1695+
defer q.mutex.Unlock()
1696+
1697+
var validLogs []database.ReportGeneratorLog
1698+
for _, record := range q.reportGeneratorLogs {
1699+
if record.NotificationTemplateID != params.NotificationTemplateID || record.LastGeneratedAt.After(params.Before) {
1700+
validLogs = append(validLogs, record)
1701+
}
1702+
}
1703+
q.reportGeneratorLogs = validLogs
1704+
return nil
1705+
}
1706+
16931707
func (q *FakeQuerier) DeleteOldProvisionerDaemons(_ context.Context) error {
16941708
q.mutex.Lock()
16951709
defer q.mutex.Unlock()
@@ -1709,20 +1723,6 @@ func (q *FakeQuerier) DeleteOldProvisionerDaemons(_ context.Context) error {
17091723
return nil
17101724
}
17111725

1712-
func (q *FakeQuerier) DeleteOldNotificationReportGeneratorLogs(_ context.Context, params database.DeleteOldNotificationReportGeneratorLogsParams) error {
1713-
q.mutex.Lock()
1714-
defer q.mutex.Unlock()
1715-
1716-
var validLogs []database.ReportGeneratorLog
1717-
for _, record := range q.reportGeneratorLogs {
1718-
if record.NotificationTemplateID != params.NotificationTemplateID || record.LastGeneratedAt.After(params.Before) {
1719-
validLogs = append(validLogs, record)
1720-
}
1721-
}
1722-
q.reportGeneratorLogs = validLogs
1723-
return nil
1724-
}
1725-
17261726
func (q *FakeQuerier) DeleteOldWorkspaceAgentLogs(_ context.Context, threshold time.Time) error {
17271727
q.mutex.Lock()
17281728
defer q.mutex.Unlock()
@@ -3002,6 +3002,23 @@ func (q *FakeQuerier) GetNotificationMessagesByStatus(_ context.Context, arg dat
30023002
return out, nil
30033003
}
30043004

3005+
func (q *FakeQuerier) GetNotificationReportGeneratorLogByUserAndTemplate(_ context.Context, arg database.GetNotificationReportGeneratorLogByUserAndTemplateParams) (database.ReportGeneratorLog, error) {
3006+
err := validateDatabaseType(arg)
3007+
if err != nil {
3008+
return database.ReportGeneratorLog{}, err
3009+
}
3010+
3011+
q.mutex.RLock()
3012+
defer q.mutex.RUnlock()
3013+
3014+
for _, record := range q.reportGeneratorLogs {
3015+
if record.UserID == arg.UserID && record.NotificationTemplateID == arg.NotificationTemplateID {
3016+
return record, nil
3017+
}
3018+
}
3019+
return database.ReportGeneratorLog{}, sql.ErrNoRows
3020+
}
3021+
30053022
func (*FakeQuerier) GetNotificationTemplateByID(_ context.Context, _ uuid.UUID) (database.NotificationTemplate, error) {
30063023
// Not implementing this function because it relies on state in the database which is created with migrations.
30073024
// We could consider using code-generation to align the database state and dbmem, but it's not worth it right now.
@@ -3603,23 +3620,6 @@ func (q *FakeQuerier) GetReplicasUpdatedAfter(_ context.Context, updatedAt time.
36033620
return replicas, nil
36043621
}
36053622

3606-
func (q *FakeQuerier) GetNotificationReportGeneratorLogByUserAndTemplate(_ context.Context, arg database.GetNotificationReportGeneratorLogByUserAndTemplateParams) (database.ReportGeneratorLog, error) {
3607-
err := validateDatabaseType(arg)
3608-
if err != nil {
3609-
return database.ReportGeneratorLog{}, err
3610-
}
3611-
3612-
q.mutex.RLock()
3613-
defer q.mutex.RUnlock()
3614-
3615-
for _, record := range q.reportGeneratorLogs {
3616-
if record.UserID == arg.UserID && record.NotificationTemplateID == arg.NotificationTemplateID {
3617-
return record, nil
3618-
}
3619-
}
3620-
return database.ReportGeneratorLog{}, sql.ErrNoRows
3621-
}
3622-
36233623
func (q *FakeQuerier) GetRuntimeConfig(_ context.Context, key string) (string, error) {
36243624
q.mutex.Lock()
36253625
defer q.mutex.Unlock()
@@ -9374,6 +9374,26 @@ func (q *FakeQuerier) UpsertLogoURL(_ context.Context, data string) error {
93749374
return nil
93759375
}
93769376

9377+
func (q *FakeQuerier) UpsertNotificationReportGeneratorLog(_ context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
9378+
err := validateDatabaseType(arg)
9379+
if err != nil {
9380+
return err
9381+
}
9382+
9383+
q.mutex.Lock()
9384+
defer q.mutex.Unlock()
9385+
9386+
for i, record := range q.reportGeneratorLogs {
9387+
if arg.NotificationTemplateID == record.NotificationTemplateID && arg.UserID == record.UserID {
9388+
q.reportGeneratorLogs[i].LastGeneratedAt = arg.LastGeneratedAt
9389+
return nil
9390+
}
9391+
}
9392+
9393+
q.reportGeneratorLogs = append(q.reportGeneratorLogs, database.ReportGeneratorLog(arg))
9394+
return nil
9395+
}
9396+
93779397
func (q *FakeQuerier) UpsertNotificationsSettings(_ context.Context, data string) error {
93789398
q.mutex.Lock()
93799399
defer q.mutex.Unlock()
@@ -9429,26 +9449,6 @@ func (q *FakeQuerier) UpsertProvisionerDaemon(_ context.Context, arg database.Up
94299449
return d, nil
94309450
}
94319451

9432-
func (q *FakeQuerier) UpsertNotificationReportGeneratorLog(_ context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
9433-
err := validateDatabaseType(arg)
9434-
if err != nil {
9435-
return err
9436-
}
9437-
9438-
q.mutex.Lock()
9439-
defer q.mutex.Unlock()
9440-
9441-
for i, record := range q.reportGeneratorLogs {
9442-
if arg.NotificationTemplateID == record.NotificationTemplateID && arg.UserID == record.UserID {
9443-
q.reportGeneratorLogs[i].LastGeneratedAt = arg.LastGeneratedAt
9444-
return nil
9445-
}
9446-
}
9447-
9448-
q.reportGeneratorLogs = append(q.reportGeneratorLogs, database.ReportGeneratorLog(arg))
9449-
return nil
9450-
}
9451-
94529452
func (q *FakeQuerier) UpsertRuntimeConfig(_ context.Context, arg database.UpsertRuntimeConfigParams) error {
94539453
err := validateDatabaseType(arg)
94549454
if err != nil {

coderd/database/dbmetrics/dbmetrics.go

Lines changed: 20 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)