diff --git a/sample/01-complete-app/src/echo/echo.update.ts b/sample/01-complete-app/src/echo/echo.update.ts index 577809a..92135e1 100644 --- a/sample/01-complete-app/src/echo/echo.update.ts +++ b/sample/01-complete-app/src/echo/echo.update.ts @@ -1,8 +1,18 @@ import { Telegraf } from 'telegraf'; -import { Help, InjectBot, On, Start, Update } from 'nestjs-telegraf'; +import { + Ctx, + MessageText, + Help, + InjectBot, + On, + Start, + Update, + Hears, +} from 'nestjs-telegraf'; import { EchoService } from './echo.service'; import { GreeterBotName } from '../app.constants'; import { Context } from '../interfaces/context.interface'; +import { ReverseTextPipe } from '../common/pipes/reverse-text.pipe'; @Update() export class EchoUpdate { @@ -13,26 +23,18 @@ export class EchoUpdate { ) {} @Start() - async onStart(ctx: Context): Promise { + async onStart(): Promise { const me = await this.bot.telegram.getMe(); - await ctx.reply(`Hey, I'm ${me.first_name}`); + return `Hey, I'm ${me.first_name}`; } @Help() - async onHelp(ctx: Context): Promise { - await ctx.reply('Send me any text'); + async onHelp(): Promise { + return 'Send me any text'; } - @On('message') - async onMessage(ctx: Context): Promise { - console.log('New message received'); - - if ('text' in ctx.message) { - const messageText = ctx.message.text; - const echoText = this.echoService.echo(messageText); - await ctx.reply(echoText); - } else { - await ctx.reply('Only text messages'); - } + @On('text') + onMessage(@MessageText(new ReverseTextPipe()) messageText: string): string { + return this.echoService.echo(messageText); } } diff --git a/sample/01-complete-app/src/greeter/greeter.update.ts b/sample/01-complete-app/src/greeter/greeter.update.ts index a8424f7..dfc9c47 100644 --- a/sample/01-complete-app/src/greeter/greeter.update.ts +++ b/sample/01-complete-app/src/greeter/greeter.update.ts @@ -1,22 +1,23 @@ -import { Command, Hears, Start, Update } from 'nestjs-telegraf'; +import { Command, Context as Ctx, Hears, Start, Update } from 'nestjs-telegraf'; +import { User } from 'telegraf/typings/telegram-types'; import { Context } from '../interfaces/context.interface'; import { HELLO_SCENE_ID } from '../app.constants'; +import { From } from '../common/decorators/from.decorator'; @Update() export class GreeterUpdate { @Start() - async onStart(ctx: Context): Promise { + async onStart(@Ctx() ctx: Context): Promise { await ctx.reply('Say hello to me'); } @Hears(['hi', 'hello', 'hey', 'qq']) - async onGreetings(ctx: Context): Promise { - const { first_name } = ctx.from; - await ctx.reply(`Hey ${first_name}`); + onGreetings(@From() { first_name: firstName }: User): string { + return `Hey ${firstName}`; } @Command('scene') - async onSceneCommand(ctx: Context): Promise { + async onSceneCommand(@Ctx() ctx: Context): Promise { await ctx.scene.enter(HELLO_SCENE_ID); } }