Метод execute
Метод execute
является обязательным для реализации в любом классе, который наследует абстрактный класс Command
. Этот метод принимает два аргумента: message
и data
, которые являются объектами. Объект message
содержит данные, связанные с сообщением пользователя, такими как текст, идентификатор отправителя и т. д. Объект data
является необязательным параметром и служит для передачи дополнительных данных команде.
Метод execute
должен содержать логику обработки ввода команды пользователя и создания ответа. Он вызывается, когда команда была определена и готова к выполнению.
В целом, метод execute
является ключевым методом в обработке команд пользователей и генерации соответствующих ответов.
Если в процессе выполнения команды происходит какая-либо ошибка, можно использовать метод onError
для ее обработки.
Параметры
message
- объект классаUserMessageContext
, содержащий информацию о входящем сообщении пользователя, такую как текст сообщения, идентификатор чата и т.д.data
- объект классаICommandExecuteData
, содержащий дополнительные данные, необходимые для выполнения команды.
Пример использования
Конечный код метода execute
зависит от конкретных требований проекта и применяемой архитектуры, но в качестве примера можно рассмотреть обработку простой команды "приветствие".
import { Command, UserMessageContext, CommandHandler } from "evogram";
@CommandHandler("start")
class GreetingCommand extends Command {
public execute(message: UserMessageContext) {
const greetingText = `Привет, ${message.user.fullname}! Рад тебя видеть.`;
return message.reply(greetingText);
}
}
Мы импортируем из модуля evogram
классы Command
, UserMessageContext
и декоратор CommandHandler
, который указывает на то, что данный класс представляет собой обработчик команды.
Далее мы создаем класс GreetingCommand
, который наследуется от класса Command
. Метод execute
принимает объект UserMessageContext
, который содержит информацию о сообщении пользователя. При вызове данной команды будет отправлено приветственное сообщение пользователю, содержащее его имя.
Декоратор CommandHandler
указывает на то, что данный класс является обработчиком команды "start". Таким образом, при получении от пользователя команды "/start" будет автоматически вызван метод execute
этого класса.
В данном примере мы не обрабатываем возможные ошибки, что может привести к падению приложения в случае их возникновения. В реальном проекте необходимо предусмотреть соответствующую обработку ошибок.