summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKonstantin Kukin <kukin.konstantin@gmail.com>2016-12-27 19:52:26 +0300
committerKonstantin Kukin <kukin.konstantin@gmail.com>2016-12-27 19:52:26 +0300
commit9c60e1f40132b2cf2190de55e057c442a2934440 (patch)
tree132dac4c0be66ab775a0a39d269ae154b9d8a676 /include
parentc912fac6016ec582ac3bfeec642a9b758562c994 (diff)
add parse types to JSON part1
Diffstat (limited to 'include')
-rw-r--r--include/tgbot/TgTypeParser.h101
-rw-r--r--include/tgbot/types/InlineQueryResult.h2
2 files changed, 101 insertions, 2 deletions
diff --git a/include/tgbot/TgTypeParser.h b/include/tgbot/TgTypeParser.h
index 9e5a1d7..214480a 100644
--- a/include/tgbot/TgTypeParser.h
+++ b/include/tgbot/TgTypeParser.h
@@ -40,21 +40,42 @@
#include "tgbot/types/Location.h"
#include "tgbot/types/Update.h"
#include "tgbot/types/UserProfilePhotos.h"
+#include "tgbot/types/File.h"
#include "tgbot/types/ReplyKeyboardMarkup.h"
+#include "tgbot/types/KeyboardButton.h"
+#include "tgbot/types/ReplyKeyboardRemove.h"
#include "tgbot/types/ReplyKeyboardHide.h"
#include "tgbot/types/ForceReply.h"
+#include "tgbot/types/ChatMember.h"
+#include "tgbot/types/ResponseParameters.h"
#include "tgbot/types/GenericReply.h"
#include "tgbot/types/InlineQuery.h"
#include "tgbot/types/InlineQueryResult.h"
+#include "tgbot/types/InlineQueryResultCachedAudio.h"
+#include "tgbot/types/InlineQueryResultCachedDocument.h"
+#include "tgbot/types/InlineQueryResultCachedGif.h"
+#include "tgbot/types/InlineQueryResultCachedMpeg4Gif.h"
+#include "tgbot/types/InlineQueryResultCachedPhoto.h"
+#include "tgbot/types/InlineQueryResultCachedSticker.h"
+#include "tgbot/types/InlineQueryResultCachedVideo.h"
+#include "tgbot/types/InlineQueryResultCachedVoice.h"
#include "tgbot/types/InlineQueryResultArticle.h"
-#include "tgbot/types/InlineQueryResultPhoto.h"
+#include "tgbot/types/InlineQueryResultAudio.h"
+#include "tgbot/types/InlineQueryResultContact.h"
+#include "tgbot/types/InlineQueryResultGame.h"
+#include "tgbot/types/InlineQueryResultDocument.h"
#include "tgbot/types/InlineQueryResultGif.h"
+#include "tgbot/types/InlineQueryResultLocation.h"
#include "tgbot/types/InlineQueryResultMpeg4Gif.h"
+#include "tgbot/types/InlineQueryResultPhoto.h"
+#include "tgbot/types/InlineQueryResultVenue.h"
#include "tgbot/types/InlineQueryResultVideo.h"
+#include "tgbot/types/InlineQueryResultVoice.h"
#include "tgbot/types/ChosenInlineResult.h"
#include "tgbot/types/CallbackQuery.h"
#include "tgbot/types/InlineKeyboardMarkup.h"
#include "tgbot/types/InlineKeyboardButton.h"
+#include "tgbot/types/WebhookInfo.h"
namespace TgBot {
@@ -94,20 +115,72 @@ public:
std::string parseUpdate(const Update::Ptr& object) const;
UserProfilePhotos::Ptr parseJsonAndGetUserProfilePhotos(const boost::property_tree::ptree& data) const;
std::string parseUserProfilePhotos(const UserProfilePhotos::Ptr& object) const;
+
+ File::Ptr parseJsonAndGetFile(const boost::property_tree::ptree& data) const;
+ std::string parseFile(const File::Ptr& object) const;
+
ReplyKeyboardMarkup::Ptr parseJsonAndGetReplyKeyboardMarkup(const boost::property_tree::ptree& data) const;
std::string parseReplyKeyboardMarkup(const ReplyKeyboardMarkup::Ptr& object) const;
+
+ KeyboardButton::Ptr parseJsonAndGetKeyboardButton(const boost::property_tree::ptree& data) const;
+ std::string parseKeyboardButton(const KeyboardButton::Ptr& object) const;
+
+ ReplyKeyboardRemove::Ptr parseJsonAndGetReplyKeyboardRemove(const boost::property_tree::ptree& data) const;
+ std::string parseReplyKeyboardRemove(const ReplyKeyboardRemove::Ptr& object) const;
+
ReplyKeyboardHide::Ptr parseJsonAndGetReplyKeyboardHide(const boost::property_tree::ptree& data) const;
std::string parseReplyKeyboardHide(const ReplyKeyboardHide::Ptr& object) const;
ForceReply::Ptr parseJsonAndGetForceReply(const boost::property_tree::ptree& data) const;
std::string parseForceReply(const ForceReply::Ptr& object) const;
+
+ ChatMember::Ptr parseJsonAndGetChatMember(const boost::property_tree::ptree& data) const;
+ std::string parseChatMember(const ChatMember::Ptr& object) const;
+
+ ResponseParameters::Ptr parseJsonAndGetResponseParameters(const boost::property_tree::ptree& data) const;
+ std::string parseResponseParameters(const ResponseParameters::Ptr& object) const;
+
GenericReply::Ptr parseJsonAndGetGenericReply(const boost::property_tree::ptree& data) const;
std::string parseGenericReply(const GenericReply::Ptr& object) const;
+
InlineQuery::Ptr parseJsonAndGetInlineQuery(const boost::property_tree::ptree& data) const;
std::string parseInlineQuery(const InlineQuery::Ptr& object) const;
+
InlineQueryResult::Ptr parseJsonAndGetInlineQueryResult(const boost::property_tree::ptree& data) const;
std::string parseInlineQueryResult(const InlineQueryResult::Ptr& object) const;
+
+ InlineQueryResultCachedAudio::Ptr parseJsonAndGetInlineQueryResultCachedAudio(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedAudio(const InlineQueryResultCachedAudio::Ptr& object) const;
+
+ InlineQueryResultCachedDocument::Ptr parseJsonAndGetInlineQueryResultCachedDocument(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedDocument(const InlineQueryResultCachedDocument::Ptr& object) const;
+
+ InlineQueryResultCachedGif::Ptr parseJsonAndGetInlineQueryResultCachedGif(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedGif(const InlineQueryResultCachedGif::Ptr& object) const;
+
+ InlineQueryResultCachedMpeg4Gif::Ptr parseJsonAndGetInlineQueryResultCachedMpeg4Gif(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedMpeg4Gif(const InlineQueryResultCachedMpeg4Gif::Ptr& object) const;
+
+ InlineQueryResultCachedPhoto::Ptr parseJsonAndGetInlineQueryResultCachedPhoto(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedPhoto(const InlineQueryResultCachedPhoto::Ptr& object) const;
+
+ InlineQueryResultCachedSticker::Ptr parseJsonAndGetInlineQueryResultCachedSticker(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedSticker(const InlineQueryResultCachedSticker::Ptr& object) const;
+
+ InlineQueryResultCachedVideo::Ptr parseJsonAndGetInlineQueryResultCachedVideo(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedVideo(const InlineQueryResultCachedVideo::Ptr& object) const;
+
+ InlineQueryResultCachedVoice::Ptr parseJsonAndGetInlineQueryResultCachedVoice(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultCachedVoice(const InlineQueryResultCachedVoice::Ptr& object) const;
+
InlineQueryResultArticle::Ptr parseJsonAndGetInlineQueryResultArticle(const boost::property_tree::ptree& data) const;
std::string parseInlineQueryResultArticle(const InlineQueryResultArticle::Ptr& object) const;
+
+ InlineQueryResultAudio::Ptr parseJsonAndGetInlineQueryResultAudio(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultAudio(const InlineQueryResultAudio::Ptr& object) const;
+
+ InlineQueryResultContact::Ptr parseJsonAndGetInlineQueryResultContact(const boost::property_tree::ptree& data) const;
+ std::string parseInlineQueryResultContact(const InlineQueryResultContact::Ptr& object) const;
+
InlineQueryResultPhoto::Ptr parseJsonAndGetInlineQueryResultPhoto(const boost::property_tree::ptree& data) const;
std::string parseInlineQueryResultPhoto(const InlineQueryResultPhoto::Ptr& object) const;
InlineQueryResultGif::Ptr parseJsonAndGetInlineQueryResultGif(const boost::property_tree::ptree& data) const;
@@ -118,6 +191,7 @@ public:
std::string parseInlineQueryResultVideo(const InlineQueryResultVideo::Ptr& object) const;
ChosenInlineResult::Ptr parseJsonAndGetChosenInlineResult(const boost::property_tree::ptree& data) const;
std::string parseChosenInlineResult(const ChosenInlineResult::Ptr& object) const;
+
CallbackQuery::Ptr parseJsonAndGetCallbackQuery(const boost::property_tree::ptree& data) const;
std::string parseCallbackQuery(const CallbackQuery::Ptr& object) const;
InlineKeyboardMarkup::Ptr parseJsonAndGetInlineKeyboardMarkup(const boost::property_tree::ptree& data) const;
@@ -125,6 +199,9 @@ public:
InlineKeyboardButton::Ptr parseJsonAndGetInlineKeyboardButton(const boost::property_tree::ptree& data) const;
std::string parseInlineKeyboardButton(const InlineKeyboardButton::Ptr& object) const;
+ WebhookInfo::Ptr parseJsonAndGetWebhookInfo(const boost::property_tree::ptree& data) const;
+ std::string parseWebhookInfo(const WebhookInfo::Ptr& object) const;
+
inline boost::property_tree::ptree parseJson(const std::string& json) const {
boost::property_tree::ptree tree;
std::istringstream input(json);
@@ -151,6 +228,15 @@ public:
}
template<typename T>
+ std::vector<T> parseJsonAndGetArray(std::function<T(const boost::property_tree::ptree&)> parseFunc, const boost::property_tree::ptree& data) const {
+ std::vector<T> result;
+ for (const std::pair<const std::string, boost::property_tree::ptree>& innerTreeItem : data) {
+ result.push_back(parseFunc(innerTreeItem.second));
+ }
+ return result;
+ }
+
+ template<typename T>
std::vector<std::shared_ptr<T>> parseJsonAndGetArray(JsonToTgTypeFunc<T> parseFunc, const boost::property_tree::ptree& data, const std::string& keyName) const {
std::vector<std::shared_ptr<T>> result;
auto treeItem = data.find(keyName);
@@ -194,6 +280,19 @@ public:
}
template<typename T>
+ std::string parseArray(std::function<T(const T&)> parseFunc, const std::vector<T>& objects) const {
+ std::string result;
+ result += '[';
+ for (const T& item : objects) {
+ result += parseFunc(item);
+ result += ',';
+ }
+ result.erase(result.length() - 1);
+ result += ']';
+ return result;
+ }
+
+ template<typename T>
std::string parse2DArray(TgTypeToJsonFunc<T> parseFunc, const std::vector<std::vector<std::shared_ptr<T>>>& objects) const {
std::string result;
result += '[';
diff --git a/include/tgbot/types/InlineQueryResult.h b/include/tgbot/types/InlineQueryResult.h
index 6dad81b..29e6f7a 100644
--- a/include/tgbot/types/InlineQueryResult.h
+++ b/include/tgbot/types/InlineQueryResult.h
@@ -22,7 +22,7 @@ public:
typedef std::shared_ptr<InlineQueryResult> Ptr;
InlineQueryResult() {
- //this->disableWebPagePreview = false;
+
}
virtual ~InlineQueryResult() { }