From 0ca21ffcb4ea5cd29946ee4c2847ded432e647a0 Mon Sep 17 00:00:00 2001 From: Andre Medeiros Date: Wed, 9 Nov 2022 14:10:45 -0500 Subject: [PATCH] handle oauth revoked errors in watchers --- internal/worker/subreddits.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/internal/worker/subreddits.go b/internal/worker/subreddits.go index 225cc8a..8ee0113 100644 --- a/internal/worker/subreddits.go +++ b/internal/worker/subreddits.go @@ -218,7 +218,17 @@ func (sc *subredditsConsumer) Consume(delivery rmq.Delivery) { zap.String("subreddit#name", subreddit.NormalizedName()), zap.Int("page", page), ) - continue + + if err == reddit.ErrOauthRevoked { + sc.logger.Info("deleting watcher", + zap.Int64("subreddit#id", id), + zap.String("subreddit#name", subreddit.NormalizedName()), + zap.Int64("watcher#id", watcher.ID), + ) + _ = sc.watcherRepo.Delete(ctx, watcher.ID) + } + + return } sc.logger.Debug("loaded new posts", @@ -283,6 +293,15 @@ func (sc *subredditsConsumer) Consume(delivery rmq.Delivery) { zap.Int64("subreddit#id", id), zap.String("subreddit#name", subreddit.NormalizedName()), ) + + if err == reddit.ErrOauthRevoked { + sc.logger.Info("deleting watcher", + zap.Int64("subreddit#id", id), + zap.String("subreddit#name", subreddit.NormalizedName()), + zap.Int64("watcher#id", watcher.ID), + ) + _ = sc.watcherRepo.Delete(ctx, watcher.ID) + } } else { sc.logger.Debug("loaded hot posts", zap.Int64("subreddit#id", id),