mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2024-12-27 00:08:09 +03:00
42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
---
|
|
id: from-v1-to-v2
|
|
title: From v1 to v2
|
|
sidebar_label: From v1 to v2
|
|
slug: /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:
|
|
```typescript title="src/cats/cats.provider.ts"
|
|
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:
|
|
```typescript {3} title="src/cats/cats.updates.ts"
|
|
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.
|