@@ -28,7 +28,7 @@ const (
28
28
delay = 15 * time .Minute
29
29
)
30
30
31
- func NewReportGenerator (ctx context.Context , logger slog.Logger , db database.Store , enqueur notifications.Enqueuer , clk quartz.Clock ) io.Closer {
31
+ func NewReportGenerator (ctx context.Context , logger slog.Logger , db database.Store , enqueuer notifications.Enqueuer , clk quartz.Clock ) io.Closer {
32
32
closed := make (chan struct {})
33
33
34
34
ctx , cancelFunc := context .WithCancel (ctx )
@@ -51,7 +51,7 @@ func NewReportGenerator(ctx context.Context, logger slog.Logger, db database.Sto
51
51
return nil
52
52
}
53
53
54
- err = reportFailedWorkspaceBuilds (ctx , logger , db , enqueur , clk )
54
+ err = reportFailedWorkspaceBuilds (ctx , logger , db , enqueuer , clk )
55
55
if err != nil {
56
56
logger .Debug (ctx , "unable to report failed workspace builds" )
57
57
return err
@@ -98,8 +98,9 @@ func (i *reportGenerator) Close() error {
98
98
return nil
99
99
}
100
100
101
+ const failedWorkspaceBuildsReportFrequencyDays = 7
102
+
101
103
func reportFailedWorkspaceBuilds (ctx context.Context , logger slog.Logger , db database.Store , enqueuer notifications.Enqueuer , clk quartz.Clock ) error {
102
- const frequencyDays = 7
103
104
104
105
statsRows , err := db .GetWorkspaceBuildStatsByTemplates (ctx , dbtime .Time (clk .Now ()).UTC ())
105
106
if err != nil {
@@ -121,7 +122,7 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
121
122
}
122
123
123
124
// There are some failed builds, so we have to prepare input data for the report.
124
- reportData = buildDataForReportFailedWorkspaceBuilds (frequencyDays , stats , failedBuilds )
125
+ reportData = buildDataForReportFailedWorkspaceBuilds (failedWorkspaceBuildsReportFrequencyDays , stats , failedBuilds )
125
126
}
126
127
127
128
templateAdmins , err := findTemplateAdmins (ctx , db , stats )
@@ -139,7 +140,7 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
139
140
return xerrors .Errorf ("unable to get recent report generator log for user: %w" , err )
140
141
}
141
142
142
- if ! reportLog .LastGeneratedAt .IsZero () && reportLog .LastGeneratedAt .Add (frequencyDays * 24 * time .Hour ).After (clk .Now ()) {
143
+ if ! reportLog .LastGeneratedAt .IsZero () && reportLog .LastGeneratedAt .Add (failedWorkspaceBuildsReportFrequencyDays * 24 * time .Hour ).After (clk .Now ()) {
143
144
// report generated recently, no need to send it now
144
145
err = db .UpsertReportGeneratorLog (ctx , database.UpsertReportGeneratorLogParams {
145
146
UserID : templateAdmin .ID ,
@@ -196,7 +197,7 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
196
197
197
198
err = db .DeleteOldReportGeneratorLogs (ctx , database.DeleteOldReportGeneratorLogsParams {
198
199
NotificationTemplateID : notifications .TemplateWorkspaceBuildsFailedReport ,
199
- FrequencyDays : frequencyDays ,
200
+ FrequencyDays : failedWorkspaceBuildsReportFrequencyDays ,
200
201
})
201
202
if err != nil {
202
203
return xerrors .Errorf ("unable to delete old report generator logs: %w" , err )
0 commit comments