From ee8ad5b7fa4fba59b513d50201f1aae96f205e1a Mon Sep 17 00:00:00 2001 From: Rongrong <15956627+Rongronggg9@users.noreply.github.com> Date: Wed, 6 Apr 2022 05:11:09 +0800 Subject: [PATCH] feat(route)(twitter): API fallback (#9475) Signed-off-by: Rongrong <15956627+Rongronggg9@users.noreply.github.com> --- lib/routes/twitter/keyword.js | 13 +++++++++---- lib/routes/twitter/user.js | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/routes/twitter/keyword.js b/lib/routes/twitter/keyword.js index 6ba30b8a5..54c470f4c 100644 --- a/lib/routes/twitter/keyword.js +++ b/lib/routes/twitter/keyword.js @@ -1,11 +1,16 @@ const config = require('@/config').value; const webApiImpl = require('./web-api/search'); const devApiImpl = require('./developer-api/search'); +const logger = require('@/utils/logger'); module.exports = async (ctx) => { - if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - await webApiImpl(ctx); - } else { - await devApiImpl(ctx); + if (config.twitter && config.twitter.consumer_key && config.twitter.consumer_secret) { + try { + await devApiImpl(ctx); + return; + } catch (e) { + logger.error(`Fallback to Twitter web API due to developer API error:\n${e.stack}`); + } } + await webApiImpl(ctx); }; diff --git a/lib/routes/twitter/user.js b/lib/routes/twitter/user.js index 5cbde2707..60820a94e 100644 --- a/lib/routes/twitter/user.js +++ b/lib/routes/twitter/user.js @@ -1,11 +1,16 @@ const config = require('@/config').value; const devApiImpl = require('./developer-api/user'); const webApiImpl = require('./web-api/user'); +const logger = require('@/utils/logger'); module.exports = async (ctx) => { - if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - await webApiImpl(ctx); - } else { - await devApiImpl(ctx); + if (config.twitter && config.twitter.consumer_key && config.twitter.consumer_secret) { + try { + await devApiImpl(ctx); + return; + } catch (e) { + logger.error(`Fallback to Twitter web API due to developer API error:\n${e.stack}`); + } } + await webApiImpl(ctx); };