diff --git a/server/stats.go b/server/stats.go index ceb46b6..7626fa7 100644 --- a/server/stats.go +++ b/server/stats.go @@ -7,6 +7,7 @@ import ( "html/template" "log/slog" "net/http" + "slices" "strings" "time" @@ -206,7 +207,7 @@ func generateStats(ctx context.Context) ([]ChartData, error) { FROM tasks WHERE updated_at > current_date - 7 AND (status = $1 OR status = $2) GROUP BY 1,2 - ORDER BY date ;`, constants.TASK_STATUS_SUCCESS, constants.TASK_STATUS_FAILED) + ORDER BY date;`, constants.TASK_STATUS_SUCCESS, constants.TASK_STATUS_FAILED) if err != nil { return nil, fmt.Errorf("Query Task Status Day: %w", err) } @@ -219,8 +220,11 @@ func generateStats(ctx context.Context) ([]ChartData, error) { days := []string{} successBarData := []opts.BarData{} failedBarData := []opts.BarData{} + for _, v := range taskStatusDayCounts { - days = append(days, v.Date.Format(time.DateOnly)) + if !slices.Contains(days, v.Date.Format(time.DateOnly)) { + days = append(days, v.Date.Format(time.DateOnly)) + } if v.Status == constants.TASK_STATUS_SUCCESS { successBarData = append(successBarData, opts.BarData{ Value: v.Count, @@ -230,8 +234,8 @@ func generateStats(ctx context.Context) ([]ChartData, error) { Value: v.Count, }) } - } + bar := charts.NewBar() bar.SetGlobalOptions( charts.WithInitializationOpts(opts.Initialization{ @@ -239,7 +243,7 @@ func generateStats(ctx context.Context) ([]ChartData, error) { BackgroundColor: "#111", }), charts.WithTitleOpts(opts.Title{ - Title: "Task Success/Failed Per Day", + Title: "Task Success/Failed Last 7 Days", }), ) bar.SetXAxis(days).