diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-23 13:13:30 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-23 13:13:30 +0200 |
| commit | 1125e0b7086dd2b71e0558aaf641c23dea02f200 (patch) | |
| tree | 9113903e7d722dd2b5ea0f419f33d7705978e2c9 /web | |
| parent | 2a6189bda8dd9f39d9177ffca2330101e914d8f0 (diff) | |
Apply go fix modernizations and refresh TODO list
Diffstat (limited to 'web')
| -rw-r--r-- | web/sync.go | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/web/sync.go b/web/sync.go index fdb3c4e..0b95b93 100644 --- a/web/sync.go +++ b/web/sync.go @@ -83,8 +83,7 @@ func (s *Server) handleSync(w http.ResponseWriter, r *http.Request) { return writeSyncEvent(w, flusher, "progress", progress) }) if err != nil { - var rateErr *strava.RateLimitError - if errors.As(err, &rateErr) { + if rateErr, ok := errors.AsType[*strava.RateLimitError](err); ok { slog.Warn("Strava sync rate limited", "total", progress.Total, "imported", progress.Imported, "retryAfter", rateErr.RetryAfter, "isDaily", rateErr.IsDaily, "readDaily", fmt.Sprintf("%d/%d", rateErr.State.Read.UsageDaily, rateErr.State.Read.LimitDaily), "overallDaily", fmt.Sprintf("%d/%d", rateErr.State.Overall.UsageDaily, rateErr.State.Overall.LimitDaily)) enrichProgressWithState(&progress, rateErr.State) _ = writeSyncEvent(w, flusher, "error", syncErrorEvent{ @@ -108,8 +107,7 @@ func (s *Server) handleSync(w http.ResponseWriter, r *http.Request) { func (s *Server) syncRides(client syncClient, gpxDir string, from, to time.Time, report func(SyncProgress) error) (SyncProgress, error) { activities, err := client.List(from, to) if err != nil { - var rateErr *strava.RateLimitError - if errors.As(err, &rateErr) { + if rateErr, ok := errors.AsType[*strava.RateLimitError](err); ok { slog.Warn("Strava sync rate limited while listing activities", "retryAfter", rateErr.RetryAfter, "isDaily", rateErr.IsDaily, "error", err) } return SyncProgress{}, err @@ -138,8 +136,7 @@ func (s *Server) syncRides(client syncClient, gpxDir string, from, to time.Time, } activity, gpxData, err := client.Get(summary.ID) if err != nil { - var rateErr *strava.RateLimitError - if errors.As(err, &rateErr) { + if rateErr, ok := errors.AsType[*strava.RateLimitError](err); ok { slog.Warn("Strava sync rate limited", "activity", summary.ID, "name", summary.Name, "retryAfter", rateErr.RetryAfter, "isDaily", rateErr.IsDaily, "completed", progress.Completed, "total", progress.Total) return progress, err } @@ -287,10 +284,7 @@ func rateLimitMessage(rateErr *strava.RateLimitError, progress SyncProgress) str } retryText := "" if !rateErr.RetryAfter.IsZero() { - until := time.Until(rateErr.RetryAfter).Truncate(time.Second) - if until < 0 { - until = 0 - } + until := max(time.Until(rateErr.RetryAfter).Truncate(time.Second), 0) retryText = fmt.Sprintf(" Retry after %s (in %s).", rateErr.RetryAfter.UTC().Format(time.RFC3339), until) if rateErr.IsDaily { retryText = fmt.Sprintf(" Daily limit resets at %s (in %s).", rateErr.RetryAfter.UTC().Format(time.RFC3339), until) |
