From f012655e53311fa48afd54c22992b29d95743270 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Fri, 19 Aug 2016 18:47:37 +0100 Subject: [PATCH] Add 429 handling back into Sequential Handler --- src/client/rest/RequestHandlers/Sequential.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/client/rest/RequestHandlers/Sequential.js b/src/client/rest/RequestHandlers/Sequential.js index d7949b288..8d813c46c 100644 --- a/src/client/rest/RequestHandlers/Sequential.js +++ b/src/client/rest/RequestHandlers/Sequential.js @@ -45,9 +45,17 @@ module.exports = class SequentialRequestHandler extends RequestHandler { this.timeDifference = Date.now() - new Date(res.headers.date).getTime(); } if (err) { - this.waiting = false; - item.reject(err); - reject(err); + if (err.status === 429) { + setTimeout(() => { + this.waiting = false; + resolve(); + }, res.headers['retry-after']); + } else { + this.queue.shift(); + this.waiting = false; + item.reject(err); + resolve(err); + } } else { this.queue.shift(); const data = res && res.body ? res.body : {}; @@ -56,7 +64,7 @@ module.exports = class SequentialRequestHandler extends RequestHandler { setTimeout(() => { this.waiting = false; resolve(data); - }, (this.requestResetTime - Date.now()) + this.timeDifference + 1000); + }, (this.requestResetTime - Date.now()) + this.timeDifference - 1000); } else { this.waiting = false; resolve(data); @@ -74,6 +82,6 @@ module.exports = class SequentialRequestHandler extends RequestHandler { this.waiting = true; const item = this.queue[0]; - this.execute(item).then(() => this.handle()).catch(console.log); + this.execute(item).then(() => this.handle()); } };