#pragma once #include #include #include /// @brief Структура возвращаемого значения класса BotHandlers для изменения текущего сообщения struct HandlerResult { std::string message; TgBot::InlineKeyboardMarkup::Ptr keyboard; }; class BotHandlers { public: BotHandlers(TgBot::Api api) : botApi(api) {;} /// @brief Обработка callback'ов из кнопок интерфейса /// @param query запрос callback void handleCallback(TgBot::CallbackQuery::Ptr query); /// @brief Обработка сообщений боту /// @details /// Функция для обработки сообщений, которые юзер отправляет /// боту. Необходима для обработки ревью и названий искомого /// аниме. Внутри себя проверяет текущий state пользователя /// в боте. /// @param message обрабатываемое сообщение void handleMessage(TgBot::Message::Ptr message); private: TgBot::Api botApi; void handleNavigation(TgBot::CallbackQuery::Ptr query); void processCallbackImpl(TgBot::CallbackQuery::Ptr query); /// @brief Получить очередную страницу тайтлов из списка пользователя /// @param userId Идентификатор пользователя /// @return HandlerResult static HandlerResult returnMyTitles(int64_t userId); };