Skip to content

Commit d271661

Browse files
committed
Replace sendAll with promiseEach
1 parent 0183f15 commit d271661

File tree

3 files changed

+13
-42
lines changed

3 files changed

+13
-42
lines changed

lib/facebook/reply.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
const rp = require('minimal-request-promise'),
4+
promiseEach = require('../promise-each'),
45
breakText = require('../breaktext');
56

67
module.exports = function fbReply(recipient, message, fbAccessToken) {
@@ -30,13 +31,6 @@ module.exports = function fbReply(recipient, message, fbAccessToken) {
3031
};
3132
return rp.post(`https://graph.facebook.com/v2.6/me/messages?access_token=${fbAccessToken}`, options);
3233
},
33-
sendAll = function () {
34-
if (!messages.length) {
35-
return Promise.resolve();
36-
} else {
37-
return sendSingle(messages.shift()).then(sendAll);
38-
}
39-
},
4034
messages = [];
4135

4236
function breakTextAndReturnFormatted(message) {
@@ -58,5 +52,5 @@ module.exports = function fbReply(recipient, message, fbAccessToken) {
5852
} else {
5953
messages = [message];
6054
}
61-
return sendAll();
55+
return promiseEach(sendSingle)(messages);
6256
};

lib/telegram/reply.js

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
const rp = require('minimal-request-promise');
4+
const promiseEach = require('../promise-each');
45
const REQUEST_THROTTLE = 1000/30;
56
const RETRIABLE_ERRORS = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED', 'EHOSTUNREACH', 'EPIPE', 'EAI_AGAIN'];
67
const NUMBER_OF_RETRIES = 20;
@@ -59,26 +60,13 @@ module.exports = function tlReply(messageObject, message, tlAccessToken) {
5960
};
6061

6162
return sendHttpRequest(tlAccessToken, method, options, numberOfRetries);
62-
},
63-
64-
sendAll = function () {
65-
if (!messages.length) {
66-
return Promise.resolve();
67-
} else {
68-
return sendSingle(messages.shift())
69-
.then(() => {
70-
return new Promise((resolve) => {
71-
if (!messages.length)
72-
resolve();
73-
else
74-
setTimeout(resolve, REQUEST_THROTTLE);
75-
});
76-
})
77-
.then(sendAll);
78-
}
79-
},
80-
81-
messages = Array.isArray(message) ? message : [message];
63+
};
8264

83-
return sendAll();
65+
return promiseEach(m =>
66+
sendSingle(m).then(() =>
67+
new Promise(resolve =>
68+
setTimeout(resolve, REQUEST_THROTTLE)
69+
)
70+
)
71+
)(message);
8472
};

lib/viber/reply.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22
const rp = require('minimal-request-promise');
3+
const promiseEach = require('../promise-each');
34

45
function sendSingle(receiver, authToken, messageObj) {
56
let message;
@@ -30,20 +31,8 @@ function sendSingle(receiver, authToken, messageObj) {
3031
return rp.post('https://chatapi.viber.com/pa/send_message', options);
3132
}
3233

33-
function sendAll(receiver, authToken, messages) {
34-
if (!messages.length) {
35-
return Promise.resolve();
36-
} else {
37-
return sendSingle(receiver, authToken, messages.shift())
38-
.then(() => sendAll(receiver, authToken, messages));
39-
}
40-
}
41-
4234
function sendReply(receiver, messages, authToken) {
43-
if (!Array.isArray(messages))
44-
messages = [messages];
45-
46-
return sendAll(receiver, authToken, messages);
35+
return promiseEach(m => sendSingle(receiver, authToken, m))(messages);
4736
}
4837

4938
module.exports = sendReply;

0 commit comments

Comments
 (0)