From 050f392dd1d8b724b1a5bb18573e73b4cd957ed0 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 7 Oct 2022 12:28:21 +0300 Subject: [PATCH] feat: Add error management for new follower of me trigger --- .../apps/twitter/common/get-user-followers.ts | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/packages/backend/src/apps/twitter/common/get-user-followers.ts b/packages/backend/src/apps/twitter/common/get-user-followers.ts index 23e211c0..0d4e1e64 100644 --- a/packages/backend/src/apps/twitter/common/get-user-followers.ts +++ b/packages/backend/src/apps/twitter/common/get-user-followers.ts @@ -13,7 +13,14 @@ const getUserFollowers = async ( options: GetUserFollowersOptions ) => { let response; - const followers: IJSONObject[] = []; + + const followers: { + data: IJSONObject[]; + error: IJSONObject | null; + } = { + data: [], + error: null, + }; do { const params: IJSONObject = { @@ -31,13 +38,23 @@ const getUserFollowers = async ( method: 'GET', }); + if (response.integrationError) { + followers.error = response.integrationError; + return followers; + } + + if (response.data?.errors) { + followers.error = response.data.errors; + return followers; + } + if (response.data.meta.result_count > 0) { response.data.data.forEach((tweet: IJSONObject) => { if ( !options.lastInternalId || Number(tweet.id) > Number(options.lastInternalId) ) { - followers.push(tweet); + followers.data.push(tweet); } else { return; } @@ -45,14 +62,6 @@ const getUserFollowers = async ( } } while (response.data.meta.next_token && options.lastInternalId); - if (response.data?.errors) { - const errorMessages = response.data.errors - .map((error: IJSONObject) => error.detail) - .join(' '); - - throw new Error(`Error occured while fetching user data: ${errorMessages}`); - } - return followers; };