From 1125e0b7086dd2b71e0558aaf641c23dea02f200 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Sun, 23 Aug 2026 13:13:30 +0200 Subject: Apply go fix modernizations and refresh TODO list --- web/sync.go | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'web') 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) -- cgit v1.3