created a Telegram bot using:
const bot = new Telegraf<TelegrafContext>(BOT_TOKEN);
I assigned to bot.context the Typeorm connection:
DatabaseProvider.getConnection().then((conn) => {
bot.context.db = conn;
schedulerCron(bot);
});
then I send the bot variable to schedulerCron which is defined as follow:
const schedulerCron = (bot: Telegraf<TelegrafContext>) => {
now TelegrafContext contains the types definition of Telegraf:
import type { Context, Stage } from 'telegraf';
import type { I18n } from 'telegraf-i18n';
import type { Connection } from 'typeorm';
export interface TelegrafContext extends Context {
db: Connection
i18n: I18n
scene: Stage
}
the main problem is that in schedulerCron there is a function that require only TelegrafContext:
let sendMessage = async (ctx: TelegrafContext, groupType: GroupType, text: string) => {
if I pass bot.context as follows:
await messageService.sendMessage(bot, msg.groupType, msg.text);
then I use the Telegraf method because they are inside bot and not bot.context, so in sendMessage I can't use:
ctx.telegram.sendMessage(chatId, text, MESSAGE_EXTRA);
because now ctx contains bot.context and not bot. How can I handle this?
bot.telegram.sendMessage(chat_id, text, extra)
Обсуждают сегодня