refactor: streamline feature integration in bot by using a loop for feature registration; add unhandled feature handling
This commit is contained in:
parent
5396a83150
commit
8d0c1f6d2b
17
apps/bot/src/bot/features/unhandled.ts
Normal file
17
apps/bot/src/bot/features/unhandled.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import { type Context } from '@/bot/context';
|
||||
import { logHandle } from '@/bot/helpers/logging';
|
||||
import { Composer } from 'grammy';
|
||||
|
||||
const composer = new Composer<Context>();
|
||||
|
||||
const feature = composer.chatType('private');
|
||||
|
||||
feature.on('message', logHandle('unhandled-message'), (ctx) => {
|
||||
return ctx.reply(ctx.t('msg-unhandled'));
|
||||
});
|
||||
|
||||
feature.on('callback_query', logHandle('unhandled-callback-query'), (ctx) => {
|
||||
return ctx.answerCallbackQuery();
|
||||
});
|
||||
|
||||
export { composer as unhandledFeature };
|
||||
@ -1,6 +1,7 @@
|
||||
/* eslint-disable n/callback-return */
|
||||
import { type Context } from './context';
|
||||
import * as features from './features';
|
||||
import { unhandledFeature } from './features/unhandled';
|
||||
import { errorHandler } from './handlers/errors';
|
||||
import { i18n } from './i18n';
|
||||
import * as middlewares from './middlewares';
|
||||
@ -66,8 +67,12 @@ export function createBot({ apiRoot, token }: Parameters_) {
|
||||
protectedBot.use(middlewares.updateLogger());
|
||||
protectedBot.use(autoChatAction(bot.api));
|
||||
protectedBot.use(hydrate());
|
||||
protectedBot.use(features.welcome);
|
||||
protectedBot.use(features.download);
|
||||
|
||||
for (const feature of Object.values(features)) {
|
||||
protectedBot.use(feature);
|
||||
}
|
||||
|
||||
protectedBot.use(unhandledFeature);
|
||||
|
||||
return bot;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user