Обработка ошибок telegram
This commit is contained in:
parent
10cc06ec8d
commit
7cde09c895
1 changed files with 20 additions and 2 deletions
|
|
@ -30,14 +30,19 @@ export class TelegramBotService {
|
||||||
this.telegramBotToken = this.configService.get<string>('telegramBotToken');
|
this.telegramBotToken = this.configService.get<string>('telegramBotToken');
|
||||||
this.redminePublicUrlPrefix =
|
this.redminePublicUrlPrefix =
|
||||||
this.configService.get<string>('redmineUrlPublic');
|
this.configService.get<string>('redmineUrlPublic');
|
||||||
this.initTelegramBot();
|
this.initTelegramBot().catch((ex) => {
|
||||||
|
this.logger.error(`Error at init telegram bot - ${ex}`);
|
||||||
|
});
|
||||||
this.handlers.push(this.currentIssuesBotHandlerService);
|
this.handlers.push(this.currentIssuesBotHandlerService);
|
||||||
this.handlers.push(this.setDailyEccmUserCommentBotHandlerService);
|
this.handlers.push(this.setDailyEccmUserCommentBotHandlerService);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async initTelegramBot(): Promise<void> {
|
private async initTelegramBot(): Promise<void> {
|
||||||
const Telegram = await require('node-telegram-bot-api');
|
const Telegram = await require('node-telegram-bot-api');
|
||||||
|
if (!this.telegramBotToken) return;
|
||||||
|
this.logger.debug('Telegram bot instance creation ... ');
|
||||||
this.bot = new Telegram(this.telegramBotToken, { polling: true });
|
this.bot = new Telegram(this.telegramBotToken, { polling: true });
|
||||||
|
this.logger.debug('Telegram bot instance created');
|
||||||
this.bot.onText(/\/start/, async (msg) => {
|
this.bot.onText(/\/start/, async (msg) => {
|
||||||
await this.showHelpMessage(msg);
|
await this.showHelpMessage(msg);
|
||||||
});
|
});
|
||||||
|
|
@ -50,6 +55,12 @@ export class TelegramBotService {
|
||||||
this.bot.onText(/\/leave/, async (msg) => {
|
this.bot.onText(/\/leave/, async (msg) => {
|
||||||
await this.leave(msg);
|
await this.leave(msg);
|
||||||
});
|
});
|
||||||
|
this.bot.on('polling_error', (error) => {
|
||||||
|
this.logger.error(`polling_error from telegram bot instance - ${error}`);
|
||||||
|
});
|
||||||
|
this.bot.on('webhook_error', (error) => {
|
||||||
|
this.logger.error(`webhook_error from telegram bot instance - ${error}`);
|
||||||
|
});
|
||||||
for (let i = 0; i < this.handlers.length; i++) {
|
for (let i = 0; i < this.handlers.length; i++) {
|
||||||
const handler = this.handlers[i];
|
const handler = this.handlers[i];
|
||||||
await handler.init(this, this.bot);
|
await handler.init(this, this.bot);
|
||||||
|
|
@ -57,6 +68,7 @@ export class TelegramBotService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async showHelpMessage(msg: TelegramBot.Message): Promise<void> {
|
private async showHelpMessage(msg: TelegramBot.Message): Promise<void> {
|
||||||
|
if (!this.telegramBotToken) return;
|
||||||
const userMetaInfo = await this.userMetaInfoService.findByTelegramId(
|
const userMetaInfo = await this.userMetaInfoService.findByTelegramId(
|
||||||
msg.chat.id,
|
msg.chat.id,
|
||||||
);
|
);
|
||||||
|
|
@ -81,7 +93,11 @@ export class TelegramBotService {
|
||||||
`Sent help message for telegramChatId = ${msg.chat.id}, ` +
|
`Sent help message for telegramChatId = ${msg.chat.id}, ` +
|
||||||
`message = ${helpMessage}`,
|
`message = ${helpMessage}`,
|
||||||
);
|
);
|
||||||
|
try {
|
||||||
this.bot.sendMessage(msg.chat.id, helpMessage);
|
this.bot.sendMessage(msg.chat.id, helpMessage);
|
||||||
|
} catch (ex) {
|
||||||
|
this.logger.error(`Error at send help message - ${ex?.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async sendMessageByRedmineId(
|
async sendMessageByRedmineId(
|
||||||
|
|
@ -89,6 +105,7 @@ export class TelegramBotService {
|
||||||
msg: string,
|
msg: string,
|
||||||
options?: TelegramBot.SendMessageOptions,
|
options?: TelegramBot.SendMessageOptions,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
|
if (!this.telegramBotToken) return false;
|
||||||
const userMetaInfo = await this.userMetaInfoService.findByRedmineId(
|
const userMetaInfo = await this.userMetaInfoService.findByRedmineId(
|
||||||
redmineId,
|
redmineId,
|
||||||
);
|
);
|
||||||
|
|
@ -110,6 +127,7 @@ export class TelegramBotService {
|
||||||
msg: string,
|
msg: string,
|
||||||
options?: TelegramBot.SendMessageOptions,
|
options?: TelegramBot.SendMessageOptions,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
|
if (!this.telegramBotToken) return false;
|
||||||
const user = await this.usersService.findUserByName(firstname, lastname);
|
const user = await this.usersService.findUserByName(firstname, lastname);
|
||||||
if (!user) return false;
|
if (!user) return false;
|
||||||
return await this.sendMessageByRedmineId(user.id, msg, options);
|
return await this.sendMessageByRedmineId(user.id, msg, options);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue