mirror-chatterino2/src/providers/twitch/TwitchUser.cpp

35 lines
783 B
C++
Raw Normal View History

#include "providers/twitch/twitchuser.hpp"
#include "util/rapidjson-helpers.hpp"
namespace chatterino {
namespace providers {
namespace twitch {
TwitchUser TwitchUser::fromJSON(const rapidjson::Value &value)
{
TwitchUser user;
if (!value.IsObject()) {
throw std::runtime_error("JSON value is not an object");
}
if (!rj::getSafe(value, "_id", user.id)) {
throw std::runtime_error("Missing ID key");
}
if (!rj::getSafe(value, "name", user.name)) {
throw std::runtime_error("Missing name key");
}
if (!rj::getSafe(value, "display_name", user.displayName)) {
throw std::runtime_error("Missing display name key");
}
return user;
}
} // namespace twitch
} // namespace providers
} // namespace chatterino