diff --git a/external/banana b/external/banana index 787d34e..e8cf5d3 160000 --- a/external/banana +++ b/external/banana @@ -1 +1 @@ -Subproject commit 787d34ea6f616d3a37a09c7262c07d0ff1f0bef4 +Subproject commit e8cf5d31b6bb338ad6166abe5077c174901182da diff --git a/src/Bot.cpp b/src/Bot.cpp index 5945aae..594edf8 100644 --- a/src/Bot.cpp +++ b/src/Bot.cpp @@ -51,8 +51,7 @@ void Bot::notifyUser(UserId userId, "{}\n" "Дата: {} {}\n", caseNumber, caseUrl, item.status, item.date, item.time); - banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"}, - [](const auto&) {}); + banana::api::send_message(agent_, {.chat_id = userId, .text = message, .parse_mode = "markdown"}); } void Bot::getUpdates() diff --git a/src/Bot.h b/src/Bot.h index 90de005..9b32806 100644 --- a/src/Bot.h +++ b/src/Bot.h @@ -29,7 +29,7 @@ private: LocalStorage& storage_; bool& terminationFlag_; - banana::agent::beast_callback agent_; + banana::agent::beast_async_monadic agent_; std::int64_t updatesOffset_ = 0; std::map sessions_; }; diff --git a/src/BotSession.cpp b/src/BotSession.cpp index 45453c5..c22a41d 100644 --- a/src/BotSession.cpp +++ b/src/BotSession.cpp @@ -7,7 +7,7 @@ #include #include -BotSession::BotSession(banana::agent::beast_callback& agent, +BotSession::BotSession(banana::agent::beast_async_monadic& agent, banana::integer_t userId, LocalStorage& storage) : agent_(agent), userId_(userId), storage_(storage) diff --git a/src/BotSession.h b/src/BotSession.h index a12f9c7..a259dc4 100644 --- a/src/BotSession.h +++ b/src/BotSession.h @@ -14,7 +14,9 @@ class Dialog; class BotSession final { public: - BotSession(banana::agent::beast_callback& agent, banana::integer_t userId, LocalStorage& storage); + BotSession(banana::agent::beast_async_monadic& agent, + banana::integer_t userId, + LocalStorage& storage); ~BotSession(); void processMessage(const banana::api::message_t& message); @@ -30,7 +32,7 @@ private: void processStartCommand(); void processStopCommand(); - banana::agent::beast_callback& agent_; + banana::agent::beast_async_monadic& agent_; banana::integer_t userId_; LocalStorage& storage_; std::unique_ptr activeDialog_; diff --git a/src/DialogHelpers.h b/src/DialogHelpers.h index e557e66..ca93a36 100644 --- a/src/DialogHelpers.h +++ b/src/DialogHelpers.h @@ -14,12 +14,12 @@ namespace statechart = boost::statechart; template struct StateMachine : public statechart::state_machine { - explicit StateMachine(banana::agent::beast_callback& agent, banana::integer_t userId) + explicit StateMachine(banana::agent::beast_async_monadic& agent, banana::integer_t userId) : agent(agent), userId(userId) { } - banana::agent::beast_callback& agent; + banana::agent::beast_async_monadic& agent; banana::integer_t userId; }; diff --git a/src/SubscribeCaseDialog.cpp b/src/SubscribeCaseDialog.cpp index a837ae1..88bc576 100644 --- a/src/SubscribeCaseDialog.cpp +++ b/src/SubscribeCaseDialog.cpp @@ -32,7 +32,9 @@ struct SubscriptionConfirmed : statechart::event { }; struct SubscribeCaseStateMachine : StateMachine { - SubscribeCaseStateMachine(banana::agent::beast_callback& agent, long userId, LocalStorage& storage) + SubscribeCaseStateMachine(banana::agent::beast_async_monadic& agent, + long userId, + LocalStorage& storage) : StateMachine(agent, userId), storage(storage) { } @@ -52,7 +54,7 @@ struct WaitingForInput : State auto& machine = context(); std::string text = "Введите номер дела..."; banana::api::send_message(machine.agent, - {.chat_id = machine.userId, .text = std::move(text)}, [](auto) {}); + {.chat_id = machine.userId, .text = std::move(text)}); } statechart::result react(const NewMessageEvent& event) @@ -70,8 +72,8 @@ struct WaitingForInput : State std::string text = "Некорректный формат номера дела!\n" "Попробуйте еще раз."; - banana::api::send_message( - machine.agent, {.chat_id = machine.userId, .text = std::move(text)}, [](auto) {}); + banana::api::send_message(machine.agent, + {.chat_id = machine.userId, .text = std::move(text)}); return discard_event(); } } @@ -108,8 +110,7 @@ struct GettingCaseDetails : State banana::api::send_message( machine.agent, - {.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard}, - [](auto) {}); + {.chat_id = machine.userId, .text = std::move(text), .reply_markup = keyboard}); post_event(CaseDetailsFetched()); } @@ -139,14 +140,8 @@ struct WaitingForConfirmation : Statechat.id, - .message_id = event.query.message->message_id}, - [](banana::expected> result) - { - if (!result) - LOGE(dialog, result.error()); - }); + machine.agent, {.chat_id = event.query.message->chat.id, + .message_id = event.query.message->message_id}); if (*event.query.data == "yes") { @@ -174,7 +169,7 @@ struct Subscribed : State ///////////////////////////////////////////////////////////////////////////// -SubscribeCaseDialog::SubscribeCaseDialog(banana::agent::beast_callback& agent, +SubscribeCaseDialog::SubscribeCaseDialog(banana::agent::beast_async_monadic& agent, banana::integer_t userId, LocalStorage& storage) : Dialog(userId, "SubscribeCase"), diff --git a/src/SubscribeCaseDialog.h b/src/SubscribeCaseDialog.h index c936f7d..bc4f86a 100644 --- a/src/SubscribeCaseDialog.h +++ b/src/SubscribeCaseDialog.h @@ -11,7 +11,7 @@ struct SubscribeCaseStateMachine; class SubscribeCaseDialog : public Dialog { public: - SubscribeCaseDialog(banana::agent::beast_callback& agent, + SubscribeCaseDialog(banana::agent::beast_async_monadic& agent, banana::integer_t userId, LocalStorage& storage); ~SubscribeCaseDialog() override;