2
0
mirror of https://github.com/yagop/node-telegram-bot-api synced 2025-08-29 13:27:44 +00:00

Closes #133: JSON-stringify reply_markup in qs

This commit is contained in:
GochoMugo 2016-10-10 13:26:58 +03:00
commit ab3464c679
No known key found for this signature in database
GPG Key ID: 7B6A01CB57AA39E4
2 changed files with 24 additions and 5 deletions

View File

@ -140,6 +140,14 @@ class TelegramBot extends EventEmitter {
throw new Error(`Error parsing Telegram response: ${String(json)}`);
}
}
_fixReplyMarkup(obj) {
const replyMarkup = obj.reply_markup;
if (replyMarkup && typeof replyMarkup !== 'string') {
// reply_markup must be passed as JSON stringified to Telegram
obj.reply_markup = JSON.stringify(replyMarkup);
}
}
// request-promise
_request(_path, options = {}) {
@ -148,11 +156,10 @@ class TelegramBot extends EventEmitter {
}
if (options.form) {
const replyMarkup = options.form.reply_markup;
if (replyMarkup && typeof replyMarkup !== 'string') {
// reply_markup must be passed as JSON stringified to Telegram
options.form.reply_markup = JSON.stringify(replyMarkup);
}
this._fixReplyMarkup(options.form);
}
if (options.qs) {
this._fixReplyMarkup(options.qs);
}
options.url = this._buildURL(_path);
options.simple = false;

View File

@ -205,6 +205,18 @@ describe('Telegram', function telegramSuite() {
assert.ok(is.object(resp));
});
});
it('should send a photo along with reply_markup', function test() {
const bot = new Telegram(TOKEN);
const photo = fs.readFileSync(`${__dirname}/bot.gif`);
return bot.sendPhoto(USERID, photo, {
reply_markup: {
hide_keyboard: true
}
}).then(resp => {
assert.ok(is.object(resp));
});
});
});
describe('#sendChatAction', function sendChatActionSuite() {