mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2025-09-23 17:59:06 +03:00
docs: support docs versioning, new update hook decorators docs added
This commit is contained in:
185
website/docs/api-reference/decorators.md
Normal file
185
website/docs/api-reference/decorators.md
Normal file
@@ -0,0 +1,185 @@
|
||||
---
|
||||
id: decorators
|
||||
title: Decorators
|
||||
sidebar_label: Decorators
|
||||
slug: /api-reference/decorators
|
||||
---
|
||||
|
||||
:::caution
|
||||
The described functionality is under development, the functionality has not been tested and can be changed at any time!
|
||||
:::
|
||||
|
||||
### Update
|
||||
|
||||
`@Update` class decorator, it's like NestJS [`@Controller`](https://docs.nestjs.com/controllers) decorator, but for [Telegram Bot API updates](https://core.telegram.org/bots/api#getting-updates).
|
||||
|
||||
```typescript {3}
|
||||
import { Update, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Message
|
||||
|
||||
Use `@Message` method decorator for handling new incoming message of any kind — text, photo, sticker, etc.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, Message, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@Message()
|
||||
message(ctx: Context) {
|
||||
ctx.reply(`You say: ${ctx.message.text}`);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### EditedMessage
|
||||
|
||||
Use `@EditedMessage` method decorator for handling new version of a message that is known to the bot and was edited.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, EditedMessage, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@EditedMessage()
|
||||
editedMessage(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ChannelPost
|
||||
|
||||
Use `@ChannelPost` method decorator for handling new incoming channel post of any kind — text, photo, sticker, etc.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, ChannelPost, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@ChannelPost()
|
||||
channelPost(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### EditedChannelPost
|
||||
|
||||
Use `@EditedChannelPost` method decorator for handling new version of a channel post that is known to the bot and was edited.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, EditedChannelPost, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@EditedChannelPost()
|
||||
editedChannelPost(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### InlineQuery
|
||||
|
||||
Use `@InlineQuery` method decorator for handling new incoming inline query.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, InlineQuery, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@InlineQuery()
|
||||
inlineQuery(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The `@InlineQuery` decorator can take a `triggers` option to handle inline query with specific value.
|
||||
|
||||
```typescript {6}
|
||||
import { Update, InlineQuery, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@InlineQuery({
|
||||
triggers: 'trigger' // string/string[]/RegEx/RegEx[]
|
||||
})
|
||||
inlineQuery(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### ChosenInlineResult
|
||||
|
||||
Use `@ChosenInlineResult` method decorator for handling result of an inline query that was chosen by a user and sent to their chat partner.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, ChosenInlineResult, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@ChosenInlineResult()
|
||||
chosenInlineResult(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### CallbackQuery
|
||||
|
||||
Use `@CallbackQuery` method decorator for handling new incoming callback query.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, CallbackQuery, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@CallbackQuery()
|
||||
callbackQuery(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ShippingQuery
|
||||
|
||||
Use `@ShippingQuery` method decorator for handling new incoming shipping query. Only for invoices with flexible price.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, ShippingQuery, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@ShippingQuery()
|
||||
shippingQuery(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### PreCheckoutQuery
|
||||
|
||||
Use `@PreCheckoutQuery` method decorator for handling new incoming pre-checkout query. Contains full information about checkout.
|
||||
|
||||
```typescript {5}
|
||||
import { Update, PreCheckoutQuery, Context } from 'nestjs-telegraf';
|
||||
|
||||
@Update()
|
||||
export class SomeBotService {
|
||||
@PreCheckoutQuery()
|
||||
preCheckoutQuery(ctx: Context) {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user