From f430466a5b1e26715982f717a953cae160d0b3ab Mon Sep 17 00:00:00 2001 From: nerix Date: Thu, 11 Dec 2025 19:57:00 +0100 Subject: [PATCH] chore(eventsub): reformat `session.cpp` (#6646) Reviewed-by: Rasmus Karlsson --- lib/twitch-eventsub-ws/src/session.cpp | 341 ++++++++++++------------- 1 file changed, 169 insertions(+), 172 deletions(-) diff --git a/lib/twitch-eventsub-ws/src/session.cpp b/lib/twitch-eventsub-ws/src/session.cpp index 6c83895d..fbab1d65 100644 --- a/lib/twitch-eventsub-ws/src/session.cpp +++ b/lib/twitch-eventsub-ws/src/session.cpp @@ -53,194 +53,191 @@ using NotificationHandlers = std::unordered_map< namespace { - template - boost::system::result parsePayload(const boost::json::value &jv) +template +boost::system::result parsePayload(const boost::json::value &jv) +{ + auto result = boost::json::try_value_to(jv); + if (!result.has_value()) { - auto result = boost::json::try_value_to(jv); - if (!result.has_value()) - { - return result.error(); - } - - return std::move(result.value()); + return result.error(); } - // Subscription types - const NotificationHandlers NOTIFICATION_HANDLERS{ - { - {"channel.ban", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelBan(metadata, *oPayload); - return boost::system::error_code{}; - }, + return std::move(result.value()); +} + +// Subscription types +const NotificationHandlers NOTIFICATION_HANDLERS{ + { + {"channel.ban", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelBan(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"stream.online", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onStreamOnline(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"stream.online", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onStreamOnline(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"stream.offline", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onStreamOffline(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"stream.offline", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onStreamOffline(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.chat.notification", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = parsePayload< - payload::channel_chat_notification::v1::Payload>(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelChatNotification(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.chat.notification", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload( + jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelChatNotification(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.update", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelUpdate(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.update", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelUpdate(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.chat.message", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload( - jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelChatMessage(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.chat.message", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelChatMessage(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.moderate", "2"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelModerate(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.moderate", "2"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelModerate(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"automod.message.hold", "2"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload( - jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onAutomodMessageHold(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"automod.message.hold", "2"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onAutomodMessageHold(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"automod.message.update", "2"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = - parsePayload( - jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onAutomodMessageUpdate(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"automod.message.update", "2"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = + parsePayload(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onAutomodMessageUpdate(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.suspicious_user.message", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = parsePayload< - payload::channel_suspicious_user_message::v1::Payload>(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelSuspiciousUserMessage(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.suspicious_user.message", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = parsePayload< + payload::channel_suspicious_user_message::v1::Payload>(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelSuspiciousUserMessage(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.suspicious_user.update", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = parsePayload< - payload::channel_suspicious_user_update::v1::Payload>(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelSuspiciousUserUpdate(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.suspicious_user.update", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = parsePayload< + payload::channel_suspicious_user_update::v1::Payload>(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelSuspiciousUserUpdate(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.chat.user_message_hold", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = parsePayload< - payload::channel_chat_user_message_hold::v1::Payload>(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelChatUserMessageHold(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.chat.user_message_hold", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = parsePayload< + payload::channel_chat_user_message_hold::v1::Payload>(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelChatUserMessageHold(metadata, *oPayload); + return boost::system::error_code{}; }, - { - {"channel.chat.user_message_update", "1"}, - [](const auto &metadata, const auto &jv, auto &listener) { - auto oPayload = parsePayload< - payload::channel_chat_user_message_update::v1::Payload>(jv); - if (!oPayload) - { - return oPayload.error(); - } - listener->onChannelChatUserMessageUpdate(metadata, *oPayload); - return boost::system::error_code{}; - }, + }, + { + {"channel.chat.user_message_update", "1"}, + [](const auto &metadata, const auto &jv, auto &listener) { + auto oPayload = parsePayload< + payload::channel_chat_user_message_update::v1::Payload>(jv); + if (!oPayload) + { + return oPayload.error(); + } + listener->onChannelChatUserMessageUpdate(metadata, *oPayload); + return boost::system::error_code{}; }, - // Add your new subscription types above this line - }; + }, + // Add your new subscription types above this line +}; } // namespace