Tweetオブジェクトに機能追加

This commit is contained in:
keita
2021-03-04 14:00:15 +09:00
parent c88923291e
commit 9742f20199
2 changed files with 43 additions and 0 deletions
+32
View File
@@ -1,6 +1,9 @@
#include <cocoatweet/api/model/tweet.h>
#include <cocoatweet/exception/tweetNotFoundException.h>
#include <cocoatweet/exception/authenticateException.h>
#include <cocoatweet/exception/tweetDuplicateException.h>
#include <cocoatweet/exception/tweetTooLongException.h>
#include <cocoatweet/exception/rateLimitException.h>
#include "nlohmann/json.hpp"
#include <iostream>
@@ -12,6 +15,9 @@ Tweet Tweet::parse(const unsigned int _responseCode, const std::string& _json) {
if (_responseCode == 200) {
tweet.id(j["id_str"]);
tweet.createdAt(j["created_at"]);
tweet.text(j["text"]);
tweet.source(j["source"]);
} else {
auto error = j["errors"][0]["code"];
auto message = j["errors"][0]["message"];
@@ -19,6 +25,12 @@ Tweet Tweet::parse(const unsigned int _responseCode, const std::string& _json) {
throw CocoaTweet::Exception::TweetNotFoundException(message.get<std::string>().c_str());
}else if(error.get<int>() == 32){
throw CocoaTweet::Exception::AuthenticateException(message.get<std::string>().c_str());
}else if(error.get<int>() == 187){
throw CocoaTweet::Exception::TweetDuplicateException(message.get<std::string>().c_str());
}else if(error.get<int>() == 88 || error.get<int>() == 185){
throw CocoaTweet::Exception::RateLimitException(message.get<std::string>().c_str());
}else if(error.get<int>() == 186){
throw CocoaTweet::Exception::TweetTooLongException(message.get<std::string>().c_str());
}
}
@@ -29,7 +41,27 @@ void Tweet::id(const std::string _id) {
id_ = _id;
}
void Tweet::createdAt(const std::string _at){
createdAt_ = _at;
}
void Tweet::text(const std::string _text){
text_ = _text;
}
void Tweet::source(const std::string _source){
source_ = _source;
}
const std::string Tweet::id() const {
return id_;
}
const std::string Tweet::createdAt() const {
return createdAt_;
}
const std::string Tweet::text() const {
return text_;
}
const std::string Tweet::source() const {
return source_;
}
} // namespace CocoaTweet::API::Model
+11
View File
@@ -12,10 +12,21 @@ public:
: Tweet(Tweet::parse(_responseCode, _json)) {}
static Tweet parse(const unsigned int _responseCode, const std::string& _json);
void id(const std::string _id);
void createdAt(const std::string _at);
void text(const std::string _text);
void source(const std::string _source);
const std::string id() const;
const std::string createdAt() const;
const std::string text() const;
const std::string source() const;
private:
std::string id_;
std::string createdAt_;
std::string text_;
std::string source_;
};
} // namespace CocoaTweet::API::Model