Перейти к основному содержимому

Метод 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 этого класса.

осторожно

В данном примере мы не обрабатываем возможные ошибки, что может привести к падению приложения в случае их возникновения. В реальном проекте необходимо предусмотреть соответствующую обработку ошибок.