nestjs-telegraf/website/versioned_docs/version-2.0.0/migrating/from-v1-to-v2.md
2021-02-14 23:59:26 +03:00

1.3 KiB

id title sidebar_label slug
from-v1-to-v2 From v1 to v2 From v1 to v2 /migrating/from-v1-to-v2

Remove Telegraf prefix

If you previously used decorators with the prefix Telegraf in the decorator name (such as @TelegrafOn() or @TelegrafHelp()) replace them with the same decorators but without the prefix Telegraf, such as @On(), @Start(), @Command() and so on.

@Update() decorator

Since v2, nestjs-telegraf looks for all update handlers only inside individual classes, under the @Update() decorator.

Previously, you could declare a handler anywhere, for example:

import { Injectable } from '@nestjs/common';
import { Command } from 'nestjs-telegraf';

@Injectable()
export class CatsProvider {
  @Command('cats')
  async helpCommand(ctx: TelegrafContext) {
    await ctx.reply('Meow.');  
  }  
}

Now you must explicitly bind the class, for Telegram Bot Api update handlers:

import { Update, Ctx } from 'nestjs-telegraf';

@Update()
export class HelpUpdate {
  @Command('help')
  async helpCommand(@Ctx() ctx: TelegrafContext) {
    await ctx.reply('Help command.');  
  }  
}

Treat the @Update() decorator like the @Controller() decorator, but to capture Telegram Bot Api updates.