Merge pull request #42 from laurynas-karvelis/master

Mount event listener only if message was sent out successfully
This commit is contained in:
Mahdi Dibaiee 2018-03-21 16:01:09 +03:30 committed by GitHub
commit 3752592fd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,7 +25,7 @@ export default class Base extends EventEmitter {
* gets the Update object containing message
*
* @param {object} bot
* @return {promise} returns a promise, resolved with message:answer
* @return {Promise} returns a promise, resolved with message:answer
*/
send(bot) {
if (this._keyboard) {
@ -33,19 +33,13 @@ export default class Base extends EventEmitter {
this.properties.reply_markup = replyMarkup;
}
let messageId;
return new Promise((resolve, reject) => {
this._apiSend(bot)
.then(response => {
messageId = response.result.message_id;
this.emit('message:sent', response);
return response.result.message_id;
})
.catch(reject);
if (this._keyboard.one_time_keyboard) {
this._keyboard.replyMarkup = '';
}
.then(messageId => {
const chat = this.properties.chat_id;
let answers = 0;
@ -73,6 +67,13 @@ export default class Base extends EventEmitter {
bot.removeListener('update', listener);
}
});
})
.catch(reject)
.finally(() => {
if (this._keyboard.one_time_keyboard) {
this._keyboard.replyMarkup = '';
}
});
});
}