Mount bot.on('update') event listener only if message was sent out successfully; Reset one time keyboard after api.send request has been done
This commit is contained in:
		| @@ -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 = ''; | ||||
|           } | ||||
|         }); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user