Skip to content

Commit 0348502

Browse files
authored
Fix Twitter user info update worker when username is changed (#173)
1 parent 730e7fc commit 0348502

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

pkg/code/async/user/twitter.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,14 @@ func (p *service) processNewTwitterRegistrations(ctx context.Context) error {
171171
func (p *service) refreshTwitterUserInfo(ctx context.Context, username string) error {
172172
user, err := p.twitterClient.GetUserByUsername(ctx, username)
173173
if err != nil {
174+
if strings.Contains(strings.ToLower(err.Error()), "could not find user with username") {
175+
err = p.onTwitterUsernameNotFound(ctx, username)
176+
if err != nil {
177+
return errors.Wrap(err, "error updating cached user state")
178+
}
179+
return nil
180+
}
181+
174182
return errors.Wrap(err, "error getting user info from twitter")
175183
}
176184

@@ -220,6 +228,25 @@ func (p *service) updateCachedTwitterUser(ctx context.Context, user *twitter_lib
220228
}
221229
}
222230

231+
func (p *service) onTwitterUsernameNotFound(ctx context.Context, username string) error {
232+
record, err := p.data.GetTwitterUserByUsername(ctx, username)
233+
switch err {
234+
case nil:
235+
case twitter.ErrUserNotFound:
236+
return nil
237+
default:
238+
return errors.Wrap(err, "error getting cached twitter user")
239+
}
240+
241+
record.LastUpdatedAt = time.Now()
242+
243+
err = p.data.SaveTwitterUser(ctx, record)
244+
if err != nil {
245+
return errors.Wrap(err, "error updating cached twitter user")
246+
}
247+
return nil
248+
}
249+
223250
func (p *service) findNewRegistrationTweets(ctx context.Context) ([]*twitter_lib.Tweet, error) {
224251
var pageToken *string
225252
var res []*twitter_lib.Tweet

0 commit comments

Comments
 (0)