From 341e40d075abb536a9c752bb833116b761edc053 Mon Sep 17 00:00:00 2001 From: Dan Jones <dan.jones@noc.ac.uk> Date: Mon, 20 Feb 2023 10:15:05 +0000 Subject: [PATCH] fix: correct reference to error status code + add catch and retry in poll method --- dist/adapter.esm.js | 22 +++++++++++++++++----- dist/adapter.js | 22 +++++++++++++++++----- src/adapter/index.js | 22 +++++++++++++++++----- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/dist/adapter.esm.js b/dist/adapter.esm.js index 97b4e82..cfb0379 100644 --- a/dist/adapter.esm.js +++ b/dist/adapter.esm.js @@ -82,10 +82,11 @@ class Adapter { /** * Call the GET /receive endpoint and process the messages with decode * - * Returns the response + * Returns the response + * @param {boolean} is_retry * @returns {object} */ - poll() { + poll(is_retry=false) { let adapterConfig = this.config; return this.getAuthorizationHeader() .then((headers) => { @@ -105,7 +106,18 @@ class Adapter { return response; }) .catch((error) => { - return Promise.reject(error); + let retry = false; + switch(error.response.status) { + case 403: { + this.credentials = null; + retry = true; + } break; + case 503: { + retry = true; + } + } + if (retry && !is_retry) return this.poll(true); + else return Promise.reject(error); }); } @@ -138,7 +150,7 @@ class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; @@ -183,7 +195,7 @@ class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; diff --git a/dist/adapter.js b/dist/adapter.js index 57c294f..a20309e 100644 --- a/dist/adapter.js +++ b/dist/adapter.js @@ -84,10 +84,11 @@ class Adapter { /** * Call the GET /receive endpoint and process the messages with decode * - * Returns the response + * Returns the response + * @param {boolean} is_retry * @returns {object} */ - poll() { + poll(is_retry=false) { let adapterConfig = this.config; return this.getAuthorizationHeader() .then((headers) => { @@ -107,7 +108,18 @@ class Adapter { return response; }) .catch((error) => { - return Promise.reject(error); + let retry = false; + switch(error.response.status) { + case 403: { + this.credentials = null; + retry = true; + } break; + case 503: { + retry = true; + } + } + if (retry && !is_retry) return this.poll(true); + else return Promise.reject(error); }); } @@ -140,7 +152,7 @@ class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; @@ -185,7 +197,7 @@ class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; diff --git a/src/adapter/index.js b/src/adapter/index.js index 51ecde7..3d48d0e 100644 --- a/src/adapter/index.js +++ b/src/adapter/index.js @@ -82,10 +82,11 @@ export class Adapter { /** * Call the GET /receive endpoint and process the messages with decode * - * Returns the response + * Returns the response + * @param {boolean} is_retry * @returns {object} */ - poll() { + poll(is_retry=false) { let adapterConfig = this.config; return this.getAuthorizationHeader() .then((headers) => { @@ -105,7 +106,18 @@ export class Adapter { return response; }) .catch((error) => { - return Promise.reject(error); + let retry = false; + switch(error.response.status) { + case 403: { + this.credentials = null; + retry = true; + } break; + case 503: { + retry = true; + } + } + if (retry && !is_retry) return this.poll(true); + else return Promise.reject(error); }); } @@ -138,7 +150,7 @@ export class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; @@ -183,7 +195,7 @@ export class Adapter { }) .catch((error) => { let retry = false; - switch(error.response.status_code) { + switch(error.response.status) { case 403: { this.credentials = null; retry = true; -- GitLab