#ifndef API_AUTHOR_HPP_ #define API_AUTHOR_HPP_ #include #include using std::string, std::cout, std::endl, nlohmann::json; class Author { private: json data; WebSocket& web; NetworkManager& req; public: Author(const json& data) : data(data), web(WebSocket::getInstance()), req(NetworkManager::getInstance()), channel_id(functions::isNull(data["d"]["channel_id"])), global_name(functions::isNull(data["d"]["author"]["global_name"])), id(data["d"]["author"]["id"]) { }; string content() const { try { return data["d"]["content"]; } catch (...) { return ""; } } const string channel_id, global_name, id; string discriminator() const { return data["d"]["author"]["discriminator"]; } bool isBot() const { try { return data["d"]["author"]["bot"]; } catch (...) { return 0; } } string guild_id() { return data["d"]["guild_id"]; } string msg_id() { return data["d"]["id"]; } bool isPinned() { return data["d"]["pinned"]; } string avatar() { return data["d"]["author"]["avatar"]; } string send(const json& msg) { return req.request(HttpMethods::POST, DiscordEndpoints::details::latest + "/channels/" + data["d"]["channel_id"].get() + "/messages", msg.dump()); } }; #endif