// WARNING: This file is automatically generated. Any changes will be lost. #include "twitch-eventsub-ws/chrono.hpp" // IWYU pragma: keep #include "twitch-eventsub-ws/errors.hpp" #include "twitch-eventsub-ws/payloads/channel-ban-v1.hpp" #include namespace chatterino::eventsub::lib::payload::channel_ban::v1 { boost::json::result_for::type tag_invoke( boost::json::try_value_to_tag, const boost::json::value &jvRoot) { if (!jvRoot.is_object()) { static const error::ApplicationErrorCategory errorMustBeObject{ "Event must be an object"}; return boost::system::error_code{129, errorMustBeObject}; } const auto &root = jvRoot.get_object(); const auto *jvbroadcasterUserID = root.if_contains("broadcaster_user_id"); if (jvbroadcasterUserID == nullptr) { static const error::ApplicationErrorCategory error_missing_field_broadcasterUserID{ "Missing required key broadcaster_user_id"}; return boost::system::error_code{129, error_missing_field_broadcasterUserID}; } auto broadcasterUserID = boost::json::try_value_to(*jvbroadcasterUserID); if (broadcasterUserID.has_error()) { return broadcasterUserID.error(); } const auto *jvbroadcasterUserLogin = root.if_contains("broadcaster_user_login"); if (jvbroadcasterUserLogin == nullptr) { static const error::ApplicationErrorCategory error_missing_field_broadcasterUserLogin{ "Missing required key broadcaster_user_login"}; return boost::system::error_code{ 129, error_missing_field_broadcasterUserLogin}; } auto broadcasterUserLogin = boost::json::try_value_to(*jvbroadcasterUserLogin); if (broadcasterUserLogin.has_error()) { return broadcasterUserLogin.error(); } const auto *jvbroadcasterUserName = root.if_contains("broadcaster_user_name"); if (jvbroadcasterUserName == nullptr) { static const error::ApplicationErrorCategory error_missing_field_broadcasterUserName{ "Missing required key broadcaster_user_name"}; return boost::system::error_code{ 129, error_missing_field_broadcasterUserName}; } auto broadcasterUserName = boost::json::try_value_to(*jvbroadcasterUserName); if (broadcasterUserName.has_error()) { return broadcasterUserName.error(); } const auto *jvmoderatorUserID = root.if_contains("moderator_user_id"); if (jvmoderatorUserID == nullptr) { static const error::ApplicationErrorCategory error_missing_field_moderatorUserID{ "Missing required key moderator_user_id"}; return boost::system::error_code{129, error_missing_field_moderatorUserID}; } auto moderatorUserID = boost::json::try_value_to(*jvmoderatorUserID); if (moderatorUserID.has_error()) { return moderatorUserID.error(); } const auto *jvmoderatorUserLogin = root.if_contains("moderator_user_login"); if (jvmoderatorUserLogin == nullptr) { static const error::ApplicationErrorCategory error_missing_field_moderatorUserLogin{ "Missing required key moderator_user_login"}; return boost::system::error_code{ 129, error_missing_field_moderatorUserLogin}; } auto moderatorUserLogin = boost::json::try_value_to(*jvmoderatorUserLogin); if (moderatorUserLogin.has_error()) { return moderatorUserLogin.error(); } const auto *jvmoderatorUserName = root.if_contains("moderator_user_name"); if (jvmoderatorUserName == nullptr) { static const error::ApplicationErrorCategory error_missing_field_moderatorUserName{ "Missing required key moderator_user_name"}; return boost::system::error_code{129, error_missing_field_moderatorUserName}; } auto moderatorUserName = boost::json::try_value_to(*jvmoderatorUserName); if (moderatorUserName.has_error()) { return moderatorUserName.error(); } const auto *jvuserID = root.if_contains("user_id"); if (jvuserID == nullptr) { static const error::ApplicationErrorCategory error_missing_field_userID{ "Missing required key user_id"}; return boost::system::error_code{129, error_missing_field_userID}; } auto userID = boost::json::try_value_to(*jvuserID); if (userID.has_error()) { return userID.error(); } const auto *jvuserLogin = root.if_contains("user_login"); if (jvuserLogin == nullptr) { static const error::ApplicationErrorCategory error_missing_field_userLogin{"Missing required key user_login"}; return boost::system::error_code{129, error_missing_field_userLogin}; } auto userLogin = boost::json::try_value_to(*jvuserLogin); if (userLogin.has_error()) { return userLogin.error(); } const auto *jvuserName = root.if_contains("user_name"); if (jvuserName == nullptr) { static const error::ApplicationErrorCategory error_missing_field_userName{"Missing required key user_name"}; return boost::system::error_code{129, error_missing_field_userName}; } auto userName = boost::json::try_value_to(*jvuserName); if (userName.has_error()) { return userName.error(); } const auto *jvreason = root.if_contains("reason"); if (jvreason == nullptr) { static const error::ApplicationErrorCategory error_missing_field_reason{ "Missing required key reason"}; return boost::system::error_code{129, error_missing_field_reason}; } auto reason = boost::json::try_value_to(*jvreason); if (reason.has_error()) { return reason.error(); } const auto *jvisPermanent = root.if_contains("is_permanent"); if (jvisPermanent == nullptr) { static const error::ApplicationErrorCategory error_missing_field_isPermanent{ "Missing required key is_permanent"}; return boost::system::error_code{129, error_missing_field_isPermanent}; } auto isPermanent = boost::json::try_value_to(*jvisPermanent); if (isPermanent.has_error()) { return isPermanent.error(); } const auto *jvbannedAt = root.if_contains("banned_at"); if (jvbannedAt == nullptr) { static const error::ApplicationErrorCategory error_missing_field_bannedAt{"Missing required key banned_at"}; return boost::system::error_code{129, error_missing_field_bannedAt}; } auto bannedAt = boost::json::try_value_to( *jvbannedAt, AsISO8601()); if (bannedAt.has_error()) { return bannedAt.error(); } std::optional endsAt = std::nullopt; const auto *jvendsAt = root.if_contains("ends_at"); if (jvendsAt != nullptr && !jvendsAt->is_null()) { auto tendsAt = boost::json::try_value_to( *jvendsAt, AsISO8601()); if (tendsAt.has_error()) { return tendsAt.error(); } endsAt = std::move(tendsAt.value()); } return Event{ .broadcasterUserID = std::move(broadcasterUserID.value()), .broadcasterUserLogin = std::move(broadcasterUserLogin.value()), .broadcasterUserName = std::move(broadcasterUserName.value()), .moderatorUserID = std::move(moderatorUserID.value()), .moderatorUserLogin = std::move(moderatorUserLogin.value()), .moderatorUserName = std::move(moderatorUserName.value()), .userID = std::move(userID.value()), .userLogin = std::move(userLogin.value()), .userName = std::move(userName.value()), .reason = std::move(reason.value()), .isPermanent = std::move(isPermanent.value()), .bannedAt = std::move(bannedAt.value()), .endsAt = std::move(endsAt), }; } boost::json::result_for::type tag_invoke( boost::json::try_value_to_tag, const boost::json::value &jvRoot) { if (!jvRoot.is_object()) { static const error::ApplicationErrorCategory errorMustBeObject{ "Payload must be an object"}; return boost::system::error_code{129, errorMustBeObject}; } const auto &root = jvRoot.get_object(); const auto *jvsubscription = root.if_contains("subscription"); if (jvsubscription == nullptr) { static const error::ApplicationErrorCategory error_missing_field_subscription{ "Missing required key subscription"}; return boost::system::error_code{129, error_missing_field_subscription}; } auto subscription = boost::json::try_value_to(*jvsubscription); if (subscription.has_error()) { return subscription.error(); } const auto *jvevent = root.if_contains("event"); if (jvevent == nullptr) { static const error::ApplicationErrorCategory error_missing_field_event{ "Missing required key event"}; return boost::system::error_code{129, error_missing_field_event}; } auto event = boost::json::try_value_to(*jvevent); if (event.has_error()) { return event.error(); } return Payload{ .subscription = std::move(subscription.value()), .event = std::move(event.value()), }; } } // namespace chatterino::eventsub::lib::payload::channel_ban::v1