From e029dc7113179d206d707f657cb8bbdd4ebb54cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?So=CC=88nmez=20Kartal?= Date: Thu, 23 Mar 2017 06:20:53 +0300 Subject: [PATCH 1/2] Retry method can take an optional delay parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sönmez Kartal --- lib/slack.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/slack.js b/lib/slack.js index 5de4306e..42330558 100644 --- a/lib/slack.js +++ b/lib/slack.js @@ -59,9 +59,8 @@ export default class SlackData extends EventEmitter { return channel ? channel.id: null } - retry (){ - let interval = this.interval * 2 - setTimeout(this.fetch.bind(this), interval) + retry (delay = this.interval * 2){ + setTimeout(this.fetch.bind(this), delay) this.emit('retry') } From c68fd42a74f412be1964efe37368af5da965377a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?So=CC=88nmez=20Kartal?= Date: Thu, 23 Mar 2017 06:25:41 +0300 Subject: [PATCH 2/2] Handle too many requests response MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sönmez Kartal --- lib/slack.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/slack.js b/lib/slack.js index 42330558..8546cf01 100644 --- a/lib/slack.js +++ b/lib/slack.js @@ -70,6 +70,11 @@ export default class SlackData extends EventEmitter { return this.retry() } + // Too Many Requests + if (res.status == 429) { + return this.retry(res.headers['retry-after'] * 1000) + } + let users = res.body.members if (!users || (users && !users.length)) {