From edf6d687fc67917e60c01d5d4fa8b7e669a47859 Mon Sep 17 00:00:00 2001 From: Ifedapo Olarewaju Date: Sat, 20 Jul 2019 16:25:12 +0100 Subject: [PATCH 1/2] companion-client: better auth state check --- packages/@uppy/companion-client/src/Provider.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/@uppy/companion-client/src/Provider.js b/packages/@uppy/companion-client/src/Provider.js index ecc5bcc3e..d575a6a4c 100644 --- a/packages/@uppy/companion-client/src/Provider.js +++ b/packages/@uppy/companion-client/src/Provider.js @@ -30,8 +30,10 @@ module.exports = class Provider extends RequestClient { onReceiveResponse (response) { response = super.onReceiveResponse(response) - const authenticated = response.status !== 401 - this.uppy.getPlugin(this.pluginId).setPluginState({ authenticated }) + const plugin = this.uppy.getPlugin(this.pluginId) + const oldAuthenticated = plugin.getPluginState().authenticated + const authenticated = oldAuthenticated ? response.status !== 401 : response.status < 400 + plugin.setPluginState({ authenticated }) return response } From 06f30811a10290f7dee4e998ae081966c3f9189d Mon Sep 17 00:00:00 2001 From: Ifedapo Olarewaju Date: Sat, 20 Jul 2019 16:26:10 +0100 Subject: [PATCH 2/2] companion: handle status code errors thrown in google drive --- .../companion/src/server/provider/drive/index.js | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/@uppy/companion/src/server/provider/drive/index.js b/packages/@uppy/companion/src/server/provider/drive/index.js index 0d6aabb2e..ecffbc1c4 100644 --- a/packages/@uppy/companion/src/server/provider/drive/index.js +++ b/packages/@uppy/companion/src/server/provider/drive/index.js @@ -60,8 +60,8 @@ class Drive { .where(where) .auth(options.token) .request((err, resp) => { - if (err) { - reject(err) + if (err || resp.statusCode !== 200) { + reject(this._error(err, resp)) return } resolve(resp) @@ -71,13 +71,6 @@ class Drive { Promise.all([teamDrivesPromise, filesPromise]) .then( ([teamDrives, filesResponse]) => { - if (filesResponse.statusCode !== 200) { - const err = this._error(null, filesResponse) - logger.error(err, 'provider.drive.list.error') - done(err) - return - } - const returnData = this.adaptData( filesResponse.body, teamDrives && teamDrives.body,