#ifndef COCOATWEET_API_MODEL_TWEET_H_ #define COCOATWEET_API_MODEL_TWEET_H_ #include #include namespace CocoaTweet::API::Model { /// @brief data class for tweet object class Tweet final { public: /// @brief constructor Tweet() = default; /// @brief copy constructor Tweet(const Tweet&) = default; /// @brief constructor for create object from json response /// @param[in] const std::string& _json : received content from twitter endpoint Tweet(const std::string& _json) : Tweet(Tweet::parse(_json)) {} /// @brief response parser for tweet object /// @param[in] const std::string& _json : received content from twitter endpoint /// @param[out] CocoaTweet::API::Model::Tweet static Tweet parse(const std::string& _json); /// @brief set id of tweet /// @param[in] const std::string _id : tweet id to set /// @param[out] none void id(const std::string _id); /// @brief set created time of tweet /// @param[in] const std::string _at : tweet created time to set /// @param[out] none void createdAt(const std::string _at); /// @brief set tweet text /// @param[in] const std::string _text : text of tweet to set /// @param[out] none void text(const std::string _text); /// @brief set tweet source /// @param[in] const std::string _source : source information to set /// @param[out] none void source(const std::string _source); void user(const CocoaTweet::API::Model::User _user); /// @brief get tweet id /// @param[in] none /// @param[out] const std::string : tweet id const std::string id() const; /// @brief get tweet create time /// @param[in] none /// @param[out] const std::string : time of tweet created time const std::string createdAt() const; /// @brief get tweet text /// @param[in] none /// @param[out] const std::string : tweet text const std::string text() const; /// @brief get tweet source information /// @param[in] none /// @param[out] const std::string : source information const std::string source() const; const CocoaTweet::API::Model::User user() const; private: std::string id_; std::string createdAt_; std::string text_; std::string source_; CocoaTweet::API::Model::User user_; }; } // namespace CocoaTweet::API::Model #endif