feature: add event listeners to get answers from Base.send method only when explicitly asked
This commit is contained in:
parent
5b7c636aed
commit
896ef4e84c
@ -25,9 +25,10 @@ export default class Base extends EventEmitter {
|
|||||||
* gets the Update object containing message
|
* gets the Update object containing message
|
||||||
*
|
*
|
||||||
* @param {object} bot
|
* @param {object} bot
|
||||||
|
* @param {boolean} expectAnswer whether a sent message expects an answer from a contact(s)
|
||||||
* @return {Promise} returns a promise, resolved with message:answer
|
* @return {Promise} returns a promise, resolved with message:answer
|
||||||
*/
|
*/
|
||||||
send(bot) {
|
send(bot, expectAnswer = false) {
|
||||||
if (this._keyboard) {
|
if (this._keyboard) {
|
||||||
const replyMarkup = JSON.stringify(this._keyboard.getProperties());
|
const replyMarkup = JSON.stringify(this._keyboard.getProperties());
|
||||||
this.properties.reply_markup = replyMarkup;
|
this.properties.reply_markup = replyMarkup;
|
||||||
@ -40,6 +41,11 @@ export default class Base extends EventEmitter {
|
|||||||
return response.result.message_id;
|
return response.result.message_id;
|
||||||
})
|
})
|
||||||
.then(messageId => {
|
.then(messageId => {
|
||||||
|
if (!expectAnswer) {
|
||||||
|
// no need to add more event callbacks for the messages that don't need expect an answer
|
||||||
|
return resolve();
|
||||||
|
}
|
||||||
|
|
||||||
const chat = this.properties.chat_id;
|
const chat = this.properties.chat_id;
|
||||||
let answers = 0;
|
let answers = 0;
|
||||||
|
|
||||||
@ -67,6 +73,8 @@ export default class Base extends EventEmitter {
|
|||||||
bot.removeListener('update', listener);
|
bot.removeListener('update', listener);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return void 0;
|
||||||
})
|
})
|
||||||
.catch(reject)
|
.catch(reject)
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
@ -44,8 +44,9 @@ export default class Question extends Message {
|
|||||||
*/
|
*/
|
||||||
send(bot) {
|
send(bot) {
|
||||||
const answers = this._answers;
|
const answers = this._answers;
|
||||||
|
const expectAnswer = true;
|
||||||
|
|
||||||
return super.send(bot).then(message => {
|
return super.send(bot, expectAnswer).then(message => {
|
||||||
let answer;
|
let answer;
|
||||||
|
|
||||||
answers.forEach(function find(a) {
|
answers.forEach(function find(a) {
|
||||||
|
Loading…
Reference in New Issue
Block a user