1#ifndef TGBOT_TGTYPEPARSER_H
2#define TGBOT_TGTYPEPARSER_H
149#include <boost/property_tree/json_parser.hpp>
150#include <boost/property_tree/ptree.hpp>
160class TGBOT_API TgTypeParser {
164 using JsonToTgTypeFunc = std::shared_ptr<T> (TgTypeParser::*)(const boost::property_tree::ptree&) const;
167 using TgTypeToJsonFunc = std::string (TgTypeParser::*)(const std::shared_ptr<T>&) const;
169 Update::Ptr parseJsonAndGetUpdate(
const boost::property_tree::ptree& data)
const;
170 std::string parseUpdate(
const Update::Ptr&
object)
const;
172 WebhookInfo::Ptr parseJsonAndGetWebhookInfo(
const boost::property_tree::ptree& data)
const;
173 std::string parseWebhookInfo(
const WebhookInfo::Ptr&
object)
const;
175 User::Ptr parseJsonAndGetUser(
const boost::property_tree::ptree& data)
const;
176 std::string parseUser(
const User::Ptr&
object)
const;
178 Chat::Ptr parseJsonAndGetChat(
const boost::property_tree::ptree& data)
const;
179 std::string parseChat(
const Chat::Ptr&
object)
const;
181 Message::Ptr parseJsonAndGetMessage(
const boost::property_tree::ptree& data)
const;
182 std::string parseMessage(
const Message::Ptr&
object)
const;
184 MessageId::Ptr parseJsonAndGetMessageId(
const boost::property_tree::ptree& data)
const;
185 std::string parseMessageId(
const MessageId::Ptr&
object)
const;
187 MessageEntity::Ptr parseJsonAndGetMessageEntity(
const boost::property_tree::ptree& data)
const;
188 std::string parseMessageEntity(
const MessageEntity::Ptr&
object)
const;
190 PhotoSize::Ptr parseJsonAndGetPhotoSize(
const boost::property_tree::ptree& data)
const;
191 std::string parsePhotoSize(
const PhotoSize::Ptr&
object)
const;
193 Animation::Ptr parseJsonAndGetAnimation(
const boost::property_tree::ptree& data)
const;
194 std::string parseAnimation(
const Animation::Ptr&
object)
const;
196 Audio::Ptr parseJsonAndGetAudio(
const boost::property_tree::ptree& data)
const;
197 std::string parseAudio(
const Audio::Ptr&
object)
const;
199 Document::Ptr parseJsonAndGetDocument(
const boost::property_tree::ptree& data)
const;
200 std::string parseDocument(
const Document::Ptr&
object)
const;
202 Video::Ptr parseJsonAndGetVideo(
const boost::property_tree::ptree& data)
const;
203 std::string parseVideo(
const Video::Ptr&
object)
const;
205 VideoNote::Ptr parseJsonAndGetVideoNote(
const boost::property_tree::ptree& data)
const;
206 std::string parseVideoNote(
const VideoNote::Ptr&
object)
const;
208 Voice::Ptr parseJsonAndGetVoice(
const boost::property_tree::ptree& data)
const;
209 std::string parseVoice(
const Voice::Ptr&
object)
const;
211 Contact::Ptr parseJsonAndGetContact(
const boost::property_tree::ptree& data)
const;
212 std::string parseContact(
const Contact::Ptr&
object)
const;
214 Dice::Ptr parseJsonAndGetDice(
const boost::property_tree::ptree& data)
const;
215 std::string parseDice(
const Dice::Ptr&
object)
const;
217 PollOption::Ptr parseJsonAndGetPollOption(
const boost::property_tree::ptree& data)
const;
218 std::string parsePollOption(
const PollOption::Ptr&
object)
const;
220 PollAnswer::Ptr parseJsonAndGetPollAnswer(
const boost::property_tree::ptree& data)
const;
221 std::string parsePollAnswer(
const PollAnswer::Ptr&
object)
const;
223 Poll::Ptr parseJsonAndGetPoll(
const boost::property_tree::ptree& data)
const;
224 std::string parsePoll(
const Poll::Ptr&
object)
const;
226 Location::Ptr parseJsonAndGetLocation(
const boost::property_tree::ptree& data)
const;
227 std::string parseLocation(
const Location::Ptr&
object)
const;
229 Venue::Ptr parseJsonAndGetVenue(
const boost::property_tree::ptree& data)
const;
230 std::string parseVenue(
const Venue::Ptr&
object)
const;
232 WebAppData::Ptr parseJsonAndGetWebAppData(
const boost::property_tree::ptree& data)
const;
233 std::string parseWebAppData(
const WebAppData::Ptr&
object)
const;
235 ProximityAlertTriggered::Ptr parseJsonAndGetProximityAlertTriggered(
const boost::property_tree::ptree& data)
const;
236 std::string parseProximityAlertTriggered(
const ProximityAlertTriggered::Ptr&
object)
const;
238 MessageAutoDeleteTimerChanged::Ptr parseJsonAndGetMessageAutoDeleteTimerChanged(
const boost::property_tree::ptree& data)
const;
239 std::string parseMessageAutoDeleteTimerChanged(
const MessageAutoDeleteTimerChanged::Ptr&
object)
const;
241 ForumTopicCreated::Ptr parseJsonAndGetForumTopicCreated(
const boost::property_tree::ptree& data)
const;
242 std::string parseForumTopicCreated(
const ForumTopicCreated::Ptr&
object)
const;
244 ForumTopicClosed::Ptr parseJsonAndGetForumTopicClosed(
const boost::property_tree::ptree& data)
const;
245 std::string parseForumTopicClosed(
const ForumTopicClosed::Ptr&
object)
const;
247 ForumTopicEdited::Ptr parseJsonAndGetForumTopicEdited(
const boost::property_tree::ptree& data)
const;
248 std::string parseForumTopicEdited(
const ForumTopicEdited::Ptr&
object)
const;
250 ForumTopicReopened::Ptr parseJsonAndGetForumTopicReopened(
const boost::property_tree::ptree& data)
const;
251 std::string parseForumTopicReopened(
const ForumTopicReopened::Ptr&
object)
const;
253 GeneralForumTopicHidden::Ptr parseJsonAndGetGeneralForumTopicHidden(
const boost::property_tree::ptree& data)
const;
254 std::string parseGeneralForumTopicHidden(
const GeneralForumTopicHidden::Ptr&
object)
const;
256 GeneralForumTopicUnhidden::Ptr parseJsonAndGetGeneralForumTopicUnhidden(
const boost::property_tree::ptree& data)
const;
257 std::string parseGeneralForumTopicUnhidden(
const GeneralForumTopicUnhidden::Ptr&
object)
const;
259 UserShared::Ptr parseJsonAndGetUserShared(
const boost::property_tree::ptree& data)
const;
260 std::string parseUserShared(
const UserShared::Ptr&
object)
const;
262 ChatShared::Ptr parseJsonAndGetChatShared(
const boost::property_tree::ptree& data)
const;
263 std::string parseChatShared(
const ChatShared::Ptr&
object)
const;
265 WriteAccessAllowed::Ptr parseJsonAndGetWriteAccessAllowed(
const boost::property_tree::ptree& data)
const;
266 std::string parseWriteAccessAllowed(
const WriteAccessAllowed::Ptr&
object)
const;
268 VideoChatScheduled::Ptr parseJsonAndGetVideoChatScheduled(
const boost::property_tree::ptree& data)
const;
269 std::string parseVideoChatScheduled(
const VideoChatScheduled::Ptr&
object)
const;
271 VideoChatStarted::Ptr parseJsonAndGetVideoChatStarted(
const boost::property_tree::ptree& data)
const;
272 std::string parseVideoChatStarted(
const VideoChatStarted::Ptr&
object)
const;
274 VideoChatEnded::Ptr parseJsonAndGetVideoChatEnded(
const boost::property_tree::ptree& data)
const;
275 std::string parseVideoChatEnded(
const VideoChatEnded::Ptr&
object)
const;
277 VideoChatParticipantsInvited::Ptr parseJsonAndGetVideoChatParticipantsInvited(
const boost::property_tree::ptree& data)
const;
278 std::string parseVideoChatParticipantsInvited(
const VideoChatParticipantsInvited::Ptr&
object)
const;
280 UserProfilePhotos::Ptr parseJsonAndGetUserProfilePhotos(
const boost::property_tree::ptree& data)
const;
281 std::string parseUserProfilePhotos(
const UserProfilePhotos::Ptr&
object)
const;
283 File::Ptr parseJsonAndGetFile(
const boost::property_tree::ptree& data)
const;
284 std::string parseFile(
const File::Ptr&
object)
const;
286 WebAppInfo::Ptr parseJsonAndGetWebAppInfo(
const boost::property_tree::ptree& data)
const;
287 std::string parseWebAppInfo(
const WebAppInfo::Ptr&
object)
const;
289 ReplyKeyboardMarkup::Ptr parseJsonAndGetReplyKeyboardMarkup(
const boost::property_tree::ptree& data)
const;
290 std::string parseReplyKeyboardMarkup(
const ReplyKeyboardMarkup::Ptr&
object)
const;
292 KeyboardButton::Ptr parseJsonAndGetKeyboardButton(
const boost::property_tree::ptree& data)
const;
293 std::string parseKeyboardButton(
const KeyboardButton::Ptr&
object)
const;
295 KeyboardButtonRequestUser::Ptr parseJsonAndGetKeyboardButtonRequestUser(
const boost::property_tree::ptree& data)
const;
296 std::string parseKeyboardButtonRequestUser(
const KeyboardButtonRequestUser::Ptr&
object)
const;
298 KeyboardButtonRequestChat::Ptr parseJsonAndGetKeyboardButtonRequestChat(
const boost::property_tree::ptree& data)
const;
299 std::string parseKeyboardButtonRequestChat(
const KeyboardButtonRequestChat::Ptr&
object)
const;
301 KeyboardButtonPollType::Ptr parseJsonAndGetKeyboardButtonPollType(
const boost::property_tree::ptree& data)
const;
302 std::string parseKeyboardButtonPollType(
const KeyboardButtonPollType::Ptr&
object)
const;
304 ReplyKeyboardRemove::Ptr parseJsonAndGetReplyKeyboardRemove(
const boost::property_tree::ptree& data)
const;
305 std::string parseReplyKeyboardRemove(
const ReplyKeyboardRemove::Ptr&
object)
const;
307 InlineKeyboardMarkup::Ptr parseJsonAndGetInlineKeyboardMarkup(
const boost::property_tree::ptree& data)
const;
308 std::string parseInlineKeyboardMarkup(
const InlineKeyboardMarkup::Ptr&
object)
const;
310 InlineKeyboardButton::Ptr parseJsonAndGetInlineKeyboardButton(
const boost::property_tree::ptree& data)
const;
311 std::string parseInlineKeyboardButton(
const InlineKeyboardButton::Ptr&
object)
const;
313 LoginUrl::Ptr parseJsonAndGetLoginUrl(
const boost::property_tree::ptree& data)
const;
314 std::string parseLoginUrl(
const LoginUrl::Ptr&
object)
const;
316 CallbackQuery::Ptr parseJsonAndGetCallbackQuery(
const boost::property_tree::ptree& data)
const;
317 std::string parseCallbackQuery(
const CallbackQuery::Ptr&
object)
const;
319 ForceReply::Ptr parseJsonAndGetForceReply(
const boost::property_tree::ptree& data)
const;
320 std::string parseForceReply(
const ForceReply::Ptr&
object)
const;
322 ChatPhoto::Ptr parseJsonAndGetChatPhoto(
const boost::property_tree::ptree& data)
const;
323 std::string parseChatPhoto(
const ChatPhoto::Ptr&
object)
const;
325 ChatInviteLink::Ptr parseJsonAndGetChatInviteLink(
const boost::property_tree::ptree& data)
const;
326 std::string parseChatInviteLink(
const ChatInviteLink::Ptr&
object)
const;
328 ChatAdministratorRights::Ptr parseJsonAndGetChatAdministratorRights(
const boost::property_tree::ptree& data)
const;
329 std::string parseChatAdministratorRights(
const ChatAdministratorRights::Ptr&
object)
const;
331 ChatMember::Ptr parseJsonAndGetChatMember(
const boost::property_tree::ptree& data)
const;
332 std::string parseChatMember(
const ChatMember::Ptr&
object)
const;
334 ChatMemberOwner::Ptr parseJsonAndGetChatMemberOwner(
const boost::property_tree::ptree& data)
const;
335 std::string parseChatMemberOwner(
const ChatMemberOwner::Ptr&
object)
const;
337 ChatMemberAdministrator::Ptr parseJsonAndGetChatMemberAdministrator(
const boost::property_tree::ptree& data)
const;
338 std::string parseChatMemberAdministrator(
const ChatMemberAdministrator::Ptr&
object)
const;
340 ChatMemberMember::Ptr parseJsonAndGetChatMemberMember(
const boost::property_tree::ptree& data)
const;
341 std::string parseChatMemberMember(
const ChatMemberMember::Ptr&
object)
const;
343 ChatMemberRestricted::Ptr parseJsonAndGetChatMemberRestricted(
const boost::property_tree::ptree& data)
const;
344 std::string parseChatMemberRestricted(
const ChatMemberRestricted::Ptr&
object)
const;
346 ChatMemberLeft::Ptr parseJsonAndGetChatMemberLeft(
const boost::property_tree::ptree& data)
const;
347 std::string parseChatMemberLeft(
const ChatMemberLeft::Ptr&
object)
const;
349 ChatMemberBanned::Ptr parseJsonAndGetChatMemberBanned(
const boost::property_tree::ptree& data)
const;
350 std::string parseChatMemberBanned(
const ChatMemberBanned::Ptr&
object)
const;
352 ChatMemberUpdated::Ptr parseJsonAndGetChatMemberUpdated(
const boost::property_tree::ptree& data)
const;
353 std::string parseChatMemberUpdated(
const ChatMemberUpdated::Ptr&
object)
const;
355 ChatJoinRequest::Ptr parseJsonAndGetChatJoinRequest(
const boost::property_tree::ptree& data)
const;
356 std::string parseChatJoinRequest(
const ChatJoinRequest::Ptr&
object)
const;
358 ChatPermissions::Ptr parseJsonAndGetChatPermissions(
const boost::property_tree::ptree& data)
const;
359 std::string parseChatPermissions(
const ChatPermissions::Ptr&
object)
const;
361 ChatLocation::Ptr parseJsonAndGetChatLocation(
const boost::property_tree::ptree& data)
const;
362 std::string parseChatLocation(
const ChatLocation::Ptr&
object)
const;
364 ForumTopic::Ptr parseJsonAndGetForumTopic(
const boost::property_tree::ptree& data)
const;
365 std::string parseForumTopic(
const ForumTopic::Ptr&
object)
const;
367 BotCommand::Ptr parseJsonAndGetBotCommand(
const boost::property_tree::ptree& data)
const;
368 std::string parseBotCommand(
const BotCommand::Ptr&
object)
const;
370 BotCommandScope::Ptr parseJsonAndGetBotCommandScope(
const boost::property_tree::ptree& data)
const;
371 std::string parseBotCommandScope(
const BotCommandScope::Ptr&
object)
const;
373 BotCommandScopeDefault::Ptr parseJsonAndGetBotCommandScopeDefault(
const boost::property_tree::ptree& data)
const;
374 std::string parseBotCommandScopeDefault(
const BotCommandScopeDefault::Ptr&
object)
const;
376 BotCommandScopeAllPrivateChats::Ptr parseJsonAndGetBotCommandScopeAllPrivateChats(
const boost::property_tree::ptree& data)
const;
377 std::string parseBotCommandScopeAllPrivateChats(
const BotCommandScopeAllPrivateChats::Ptr&
object)
const;
379 BotCommandScopeAllGroupChats::Ptr parseJsonAndGetBotCommandScopeAllGroupChats(
const boost::property_tree::ptree& data)
const;
380 std::string parseBotCommandScopeAllGroupChats(
const BotCommandScopeAllGroupChats::Ptr&
object)
const;
382 BotCommandScopeAllChatAdministrators::Ptr parseJsonAndGetBotCommandScopeAllChatAdministrators(
const boost::property_tree::ptree& data)
const;
383 std::string parseBotCommandScopeAllChatAdministrators(
const BotCommandScopeAllChatAdministrators::Ptr&
object)
const;
385 BotCommandScopeChat::Ptr parseJsonAndGetBotCommandScopeChat(
const boost::property_tree::ptree& data)
const;
386 std::string parseBotCommandScopeChat(
const BotCommandScopeChat::Ptr&
object)
const;
388 BotCommandScopeChatAdministrators::Ptr parseJsonAndGetBotCommandScopeChatAdministrators(
const boost::property_tree::ptree& data)
const;
389 std::string parseBotCommandScopeChatAdministrators(
const BotCommandScopeChatAdministrators::Ptr&
object)
const;
391 BotCommandScopeChatMember::Ptr parseJsonAndGetBotCommandScopeChatMember(
const boost::property_tree::ptree& data)
const;
392 std::string parseBotCommandScopeChatMember(
const BotCommandScopeChatMember::Ptr&
object)
const;
394 MenuButton::Ptr parseJsonAndGetMenuButton(
const boost::property_tree::ptree& data)
const;
395 std::string parseMenuButton(
const MenuButton::Ptr&
object)
const;
397 MenuButtonCommands::Ptr parseJsonAndGetMenuButtonCommands(
const boost::property_tree::ptree& data)
const;
398 std::string parseMenuButtonCommands(
const MenuButtonCommands::Ptr&
object)
const;
400 MenuButtonWebApp::Ptr parseJsonAndGetMenuButtonWebApp(
const boost::property_tree::ptree& data)
const;
401 std::string parseMenuButtonWebApp(
const MenuButtonWebApp::Ptr&
object)
const;
403 MenuButtonDefault::Ptr parseJsonAndGetMenuButtonDefault(
const boost::property_tree::ptree& data)
const;
404 std::string parseMenuButtonDefault(
const MenuButtonDefault::Ptr&
object)
const;
406 ResponseParameters::Ptr parseJsonAndGetResponseParameters(
const boost::property_tree::ptree& data)
const;
407 std::string parseResponseParameters(
const ResponseParameters::Ptr&
object)
const;
409 InputMedia::Ptr parseJsonAndGetInputMedia(
const boost::property_tree::ptree& data)
const;
410 std::string parseInputMedia(
const InputMedia::Ptr&
object)
const;
412 InputMediaPhoto::Ptr parseJsonAndGetInputMediaPhoto(
const boost::property_tree::ptree& data)
const;
413 std::string parseInputMediaPhoto(
const InputMediaPhoto::Ptr&
object)
const;
415 InputMediaVideo::Ptr parseJsonAndGetInputMediaVideo(
const boost::property_tree::ptree& data)
const;
416 std::string parseInputMediaVideo(
const InputMediaVideo::Ptr&
object)
const;
418 InputMediaAnimation::Ptr parseJsonAndGetInputMediaAnimation(
const boost::property_tree::ptree& data)
const;
419 std::string parseInputMediaAnimation(
const InputMediaAnimation::Ptr&
object)
const;
421 InputMediaAudio::Ptr parseJsonAndGetInputMediaAudio(
const boost::property_tree::ptree& data)
const;
422 std::string parseInputMediaAudio(
const InputMediaAudio::Ptr&
object)
const;
424 InputMediaDocument::Ptr parseJsonAndGetInputMediaDocument(
const boost::property_tree::ptree& data)
const;
425 std::string parseInputMediaDocument(
const InputMediaDocument::Ptr&
object)
const;
427 Sticker::Ptr parseJsonAndGetSticker(
const boost::property_tree::ptree& data)
const;
428 std::string parseSticker(
const Sticker::Ptr&
object)
const;
430 StickerSet::Ptr parseJsonAndGetStickerSet(
const boost::property_tree::ptree& data)
const;
431 std::string parseStickerSet(
const StickerSet::Ptr&
object)
const;
433 MaskPosition::Ptr parseJsonAndGetMaskPosition(
const boost::property_tree::ptree& data)
const;
434 std::string parseMaskPosition(
const MaskPosition::Ptr&
object)
const;
436 InlineQuery::Ptr parseJsonAndGetInlineQuery(
const boost::property_tree::ptree& data)
const;
437 std::string parseInlineQuery(
const InlineQuery::Ptr&
object)
const;
439 InlineQueryResult::Ptr parseJsonAndGetInlineQueryResult(
const boost::property_tree::ptree& data)
const;
440 std::string parseInlineQueryResult(
const InlineQueryResult::Ptr&
object)
const;
442 InlineQueryResultArticle::Ptr parseJsonAndGetInlineQueryResultArticle(
const boost::property_tree::ptree& data)
const;
443 std::string parseInlineQueryResultArticle(
const InlineQueryResultArticle::Ptr&
object)
const;
445 InlineQueryResultPhoto::Ptr parseJsonAndGetInlineQueryResultPhoto(
const boost::property_tree::ptree& data)
const;
446 std::string parseInlineQueryResultPhoto(
const InlineQueryResultPhoto::Ptr&
object)
const;
448 InlineQueryResultGif::Ptr parseJsonAndGetInlineQueryResultGif(
const boost::property_tree::ptree& data)
const;
449 std::string parseInlineQueryResultGif(
const InlineQueryResultGif::Ptr&
object)
const;
451 InlineQueryResultMpeg4Gif::Ptr parseJsonAndGetInlineQueryResultMpeg4Gif(
const boost::property_tree::ptree& data)
const;
452 std::string parseInlineQueryResultMpeg4Gif(
const InlineQueryResultMpeg4Gif::Ptr&
object)
const;
454 InlineQueryResultVideo::Ptr parseJsonAndGetInlineQueryResultVideo(
const boost::property_tree::ptree& data)
const;
455 std::string parseInlineQueryResultVideo(
const InlineQueryResultVideo::Ptr&
object)
const;
457 InlineQueryResultAudio::Ptr parseJsonAndGetInlineQueryResultAudio(
const boost::property_tree::ptree& data)
const;
458 std::string parseInlineQueryResultAudio(
const InlineQueryResultAudio::Ptr&
object)
const;
460 InlineQueryResultVoice::Ptr parseJsonAndGetInlineQueryResultVoice(
const boost::property_tree::ptree& data)
const;
461 std::string parseInlineQueryResultVoice(
const InlineQueryResultVoice::Ptr&
object)
const;
463 InlineQueryResultDocument::Ptr parseJsonAndGetInlineQueryResultDocument(
const boost::property_tree::ptree& data)
const;
464 std::string parseInlineQueryResultDocument(
const InlineQueryResultDocument::Ptr&
object)
const;
466 InlineQueryResultLocation::Ptr parseJsonAndGetInlineQueryResultLocation(
const boost::property_tree::ptree& data)
const;
467 std::string parseInlineQueryResultLocation(
const InlineQueryResultLocation::Ptr&
object)
const;
469 InlineQueryResultVenue::Ptr parseJsonAndGetInlineQueryResultVenue(
const boost::property_tree::ptree& data)
const;
470 std::string parseInlineQueryResultVenue(
const InlineQueryResultVenue::Ptr&
object)
const;
472 InlineQueryResultContact::Ptr parseJsonAndGetInlineQueryResultContact(
const boost::property_tree::ptree& data)
const;
473 std::string parseInlineQueryResultContact(
const InlineQueryResultContact::Ptr&
object)
const;
475 InlineQueryResultGame::Ptr parseJsonAndGetInlineQueryResultGame(
const boost::property_tree::ptree& data)
const;
476 std::string parseInlineQueryResultGame(
const InlineQueryResultGame::Ptr&
object)
const;
478 InlineQueryResultCachedPhoto::Ptr parseJsonAndGetInlineQueryResultCachedPhoto(
const boost::property_tree::ptree& data)
const;
479 std::string parseInlineQueryResultCachedPhoto(
const InlineQueryResultCachedPhoto::Ptr&
object)
const;
481 InlineQueryResultCachedGif::Ptr parseJsonAndGetInlineQueryResultCachedGif(
const boost::property_tree::ptree& data)
const;
482 std::string parseInlineQueryResultCachedGif(
const InlineQueryResultCachedGif::Ptr&
object)
const;
484 InlineQueryResultCachedMpeg4Gif::Ptr parseJsonAndGetInlineQueryResultCachedMpeg4Gif(
const boost::property_tree::ptree& data)
const;
485 std::string parseInlineQueryResultCachedMpeg4Gif(
const InlineQueryResultCachedMpeg4Gif::Ptr&
object)
const;
487 InlineQueryResultCachedSticker::Ptr parseJsonAndGetInlineQueryResultCachedSticker(
const boost::property_tree::ptree& data)
const;
488 std::string parseInlineQueryResultCachedSticker(
const InlineQueryResultCachedSticker::Ptr&
object)
const;
490 InlineQueryResultCachedDocument::Ptr parseJsonAndGetInlineQueryResultCachedDocument(
const boost::property_tree::ptree& data)
const;
491 std::string parseInlineQueryResultCachedDocument(
const InlineQueryResultCachedDocument::Ptr&
object)
const;
493 InlineQueryResultCachedVideo::Ptr parseJsonAndGetInlineQueryResultCachedVideo(
const boost::property_tree::ptree& data)
const;
494 std::string parseInlineQueryResultCachedVideo(
const InlineQueryResultCachedVideo::Ptr&
object)
const;
496 InlineQueryResultCachedVoice::Ptr parseJsonAndGetInlineQueryResultCachedVoice(
const boost::property_tree::ptree& data)
const;
497 std::string parseInlineQueryResultCachedVoice(
const InlineQueryResultCachedVoice::Ptr&
object)
const;
499 InlineQueryResultCachedAudio::Ptr parseJsonAndGetInlineQueryResultCachedAudio(
const boost::property_tree::ptree& data)
const;
500 std::string parseInlineQueryResultCachedAudio(
const InlineQueryResultCachedAudio::Ptr&
object)
const;
502 InputMessageContent::Ptr parseJsonAndGetInputMessageContent(
const boost::property_tree::ptree& data)
const;
503 std::string parseInputMessageContent(
const InputMessageContent::Ptr&
object)
const;
505 InputTextMessageContent::Ptr parseJsonAndGetInputTextMessageContent(
const boost::property_tree::ptree& data)
const;
506 std::string parseInputTextMessageContent(
const InputTextMessageContent::Ptr&
object)
const;
508 InputLocationMessageContent::Ptr parseJsonAndGetInputLocationMessageContent(
const boost::property_tree::ptree& data)
const;
509 std::string parseInputLocationMessageContent(
const InputLocationMessageContent::Ptr&
object)
const;
511 InputVenueMessageContent::Ptr parseJsonAndGetInputVenueMessageContent(
const boost::property_tree::ptree& data)
const;
512 std::string parseInputVenueMessageContent(
const InputVenueMessageContent::Ptr&
object)
const;
514 InputContactMessageContent::Ptr parseJsonAndGetInputContactMessageContent(
const boost::property_tree::ptree& data)
const;
515 std::string parseInputContactMessageContent(
const InputContactMessageContent::Ptr&
object)
const;
517 InputInvoiceMessageContent::Ptr parseJsonAndGetInputInvoiceMessageContent(
const boost::property_tree::ptree& data)
const;
518 std::string parseInputInvoiceMessageContent(
const InputInvoiceMessageContent::Ptr&
object)
const;
520 ChosenInlineResult::Ptr parseJsonAndGetChosenInlineResult(
const boost::property_tree::ptree& data)
const;
521 std::string parseChosenInlineResult(
const ChosenInlineResult::Ptr&
object)
const;
523 SentWebAppMessage::Ptr parseJsonAndGetSentWebAppMessage(
const boost::property_tree::ptree& data)
const;
524 std::string parseSentWebAppMessage(
const SentWebAppMessage::Ptr&
object)
const;
526 LabeledPrice::Ptr parseJsonAndGetLabeledPrice(
const boost::property_tree::ptree& data)
const;
527 std::string parseLabeledPrice(
const LabeledPrice::Ptr&
object)
const;
529 Invoice::Ptr parseJsonAndGetInvoice(
const boost::property_tree::ptree& data)
const;
530 std::string parseInvoice(
const Invoice::Ptr&
object)
const;
532 ShippingAddress::Ptr parseJsonAndGetShippingAddress(
const boost::property_tree::ptree& data)
const;
533 std::string parseShippingAddress(
const ShippingAddress::Ptr&
object)
const;
535 OrderInfo::Ptr parseJsonAndGetOrderInfo(
const boost::property_tree::ptree& data)
const;
536 std::string parseOrderInfo(
const OrderInfo::Ptr&
object)
const;
538 ShippingOption::Ptr parseJsonAndGetShippingOption(
const boost::property_tree::ptree& data)
const;
539 std::string parseShippingOption(
const ShippingOption::Ptr&
object)
const;
541 SuccessfulPayment::Ptr parseJsonAndGetSuccessfulPayment(
const boost::property_tree::ptree& data)
const;
542 std::string parseSuccessfulPayment(
const SuccessfulPayment::Ptr&
object)
const;
544 ShippingQuery::Ptr parseJsonAndGetShippingQuery(
const boost::property_tree::ptree& data)
const;
545 std::string parseShippingQuery(
const ShippingQuery::Ptr&
object)
const;
547 PreCheckoutQuery::Ptr parseJsonAndGetPreCheckoutQuery(
const boost::property_tree::ptree& data)
const;
548 std::string parsePreCheckoutQuery(
const PreCheckoutQuery::Ptr&
object)
const;
550 PassportData::Ptr parseJsonAndGetPassportData(
const boost::property_tree::ptree& data)
const;
551 std::string parsePassportData(
const PassportData::Ptr&
object)
const;
553 PassportFile::Ptr parseJsonAndGetPassportFile(
const boost::property_tree::ptree& data)
const;
554 std::string parsePassportFile(
const PassportFile::Ptr&
object)
const;
556 EncryptedPassportElement::Ptr parseJsonAndGetEncryptedPassportElement(
const boost::property_tree::ptree& data)
const;
557 std::string parseEncryptedPassportElement(
const EncryptedPassportElement::Ptr&
object)
const;
559 EncryptedCredentials::Ptr parseJsonAndGetEncryptedCredentials(
const boost::property_tree::ptree& data)
const;
560 std::string parseEncryptedCredentials(
const EncryptedCredentials::Ptr&
object)
const;
562 PassportElementError::Ptr parseJsonAndGetPassportElementError(
const boost::property_tree::ptree& data)
const;
563 std::string parsePassportElementError(
const PassportElementError::Ptr&
object)
const;
565 PassportElementErrorDataField::Ptr parseJsonAndGetPassportElementErrorDataField(
const boost::property_tree::ptree& data)
const;
566 std::string parsePassportElementErrorDataField(
const PassportElementErrorDataField::Ptr&
object)
const;
568 PassportElementErrorFrontSide::Ptr parseJsonAndGetPassportElementErrorFrontSide(
const boost::property_tree::ptree& data)
const;
569 std::string parsePassportElementErrorFrontSide(
const PassportElementErrorFrontSide::Ptr&
object)
const;
571 PassportElementErrorReverseSide::Ptr parseJsonAndGetPassportElementErrorReverseSide(
const boost::property_tree::ptree& data)
const;
572 std::string parsePassportElementErrorReverseSide(
const PassportElementErrorReverseSide::Ptr&
object)
const;
574 PassportElementErrorSelfie::Ptr parseJsonAndGetPassportElementErrorSelfie(
const boost::property_tree::ptree& data)
const;
575 std::string parsePassportElementErrorSelfie(
const PassportElementErrorSelfie::Ptr&
object)
const;
577 PassportElementErrorFile::Ptr parseJsonAndGetPassportElementErrorFile(
const boost::property_tree::ptree& data)
const;
578 std::string parsePassportElementErrorFile(
const PassportElementErrorFile::Ptr&
object)
const;
580 PassportElementErrorFiles::Ptr parseJsonAndGetPassportElementErrorFiles(
const boost::property_tree::ptree& data)
const;
581 std::string parsePassportElementErrorFiles(
const PassportElementErrorFiles::Ptr&
object)
const;
583 PassportElementErrorTranslationFile::Ptr parseJsonAndGetPassportElementErrorTranslationFile(
const boost::property_tree::ptree& data)
const;
584 std::string parsePassportElementErrorTranslationFile(
const PassportElementErrorTranslationFile::Ptr&
object)
const;
586 PassportElementErrorTranslationFiles::Ptr parseJsonAndGetPassportElementErrorTranslationFiles(
const boost::property_tree::ptree& data)
const;
587 std::string parsePassportElementErrorTranslationFiles(
const PassportElementErrorTranslationFiles::Ptr&
object)
const;
589 PassportElementErrorUnspecified::Ptr parseJsonAndGetPassportElementErrorUnspecified(
const boost::property_tree::ptree& data)
const;
590 std::string parsePassportElementErrorUnspecified(
const PassportElementErrorUnspecified::Ptr&
object)
const;
592 Game::Ptr parseJsonAndGetGame(
const boost::property_tree::ptree& data)
const;
593 std::string parseGame(
const Game::Ptr&
object)
const;
595 CallbackGame::Ptr parseJsonAndGetCallbackGame(
const boost::property_tree::ptree& data)
const;
596 std::string parseCallbackGame(
const CallbackGame::Ptr&
object)
const;
598 GameHighScore::Ptr parseJsonAndGetGameHighScore(
const boost::property_tree::ptree& data)
const;
599 std::string parseGameHighScore(
const GameHighScore::Ptr&
object)
const;
601 GenericReply::Ptr parseJsonAndGetGenericReply(
const boost::property_tree::ptree& data)
const;
602 std::string parseGenericReply(
const GenericReply::Ptr&
object)
const;
604 inline boost::property_tree::ptree parseJson(
const std::string& json)
const {
605 boost::property_tree::ptree tree;
606 std::istringstream input(json);
607 boost::property_tree::read_json(input, tree);
612 std::shared_ptr<T> tryParseJson(JsonToTgTypeFunc<T> parseFunc,
const boost::property_tree::ptree& data,
const std::string& keyName)
const {
613 auto treeItem = data.find(keyName);
614 if (treeItem == data.not_found()) {
615 return std::shared_ptr<T>();
617 return (this->*parseFunc)(treeItem->second);
621 std::vector<std::shared_ptr<T>> parseJsonAndGetArray(JsonToTgTypeFunc<T> parseFunc,
const boost::property_tree::ptree& data)
const {
622 std::vector<std::shared_ptr<T>> result;
623 result.reserve(data.size());
624 for (
const std::pair<const std::string, boost::property_tree::ptree>& innerTreeItem : data) {
625 result.push_back((this->*parseFunc)(innerTreeItem.second));
631 std::vector<T> parseJsonAndGetArray(std::function<T(
const boost::property_tree::ptree&)> parseFunc,
const boost::property_tree::ptree& data,
const std::string& keyName)
const {
632 std::vector<T> result;
633 auto treeItem = data.find(keyName);
634 if (treeItem == data.not_found()) {
637 result.reserve(treeItem->second.size());
638 for (
const std::pair<const std::string, boost::property_tree::ptree>& innerTreeItem : treeItem->second) {
639 result.push_back(parseFunc(innerTreeItem.second));
645 std::vector<std::shared_ptr<T>> parseJsonAndGetArray(JsonToTgTypeFunc<T> parseFunc,
const boost::property_tree::ptree& data,
const std::string& keyName)
const {
646 std::vector<std::shared_ptr<T>> result;
647 auto treeItem = data.find(keyName);
648 if (treeItem == data.not_found()) {
651 result.reserve(treeItem->second.size());
652 for (
const std::pair<const std::string, boost::property_tree::ptree>& innerTreeItem : treeItem->second) {
653 result.push_back((this->*parseFunc)(innerTreeItem.second));
659 std::vector<std::vector<std::shared_ptr<T>>> parseJsonAndGet2DArray(JsonToTgTypeFunc<T> parseFunc,
const boost::property_tree::ptree& data,
const std::string& keyName)
const {
660 std::vector<std::vector<std::shared_ptr<T>>> result;
661 auto treeItem = data.find(keyName);
662 if (treeItem == data.not_found()) {
665 result.reserve(treeItem->second.size());
666 for (
const std::pair<const std::string, boost::property_tree::ptree>& innerTreeItem : treeItem->second) {
667 std::vector<std::shared_ptr<T>> innerResult;
668 for (
const std::pair<const std::string, boost::property_tree::ptree>& innerInnerTreeItem : innerTreeItem.second) {
669 innerResult.push_back((this->*parseFunc)(innerInnerTreeItem.second));
671 result.push_back(innerResult);
677 std::string parseArray(TgTypeToJsonFunc<T> parseFunc,
const std::vector<std::shared_ptr<T>>& objects)
const {
682 for (
const std::shared_ptr<T>& item : objects) {
683 result += (this->*parseFunc)(item);
686 result.erase(result.length() - 1);
692 std::string parseArray(std::function<T(
const T&)> parseFunc,
const std::vector<T>& objects)
const {
697 for (
const T& item : objects) {
698 result += parseFunc(item);
701 result.erase(result.length() - 1);
707 std::string parse2DArray(TgTypeToJsonFunc<T> parseFunc,
const std::vector<std::vector<std::shared_ptr<T>>>& objects)
const {
712 for (
const std::vector<std::shared_ptr<T>>& item : objects) {
713 result += parseArray(parseFunc, item);
716 result.erase(result.length() - 1);
722 inline void removeLastComma(std::string& input)
const {
723 input.erase(input.length() - 1);
727 inline void appendToJson(std::string& json,
const std::string& varName,
const std::shared_ptr<T>& value)
const {
728 if (value ==
nullptr) {
739 inline void appendToJson(std::string& json,
const std::string& varName,
const T& value)
const {
748 inline void appendToJsonNumber(std::string& json,
const std::string& varName,
const T& value)
const {
752 json += std::to_string(value);
756 inline void appendToJson(std::string &json,
const std::string &varName,
const int &value)
const { appendToJsonNumber(json, varName, value); }
757 inline void appendToJson(std::string &json,
const std::string &varName,
const long &value)
const { appendToJsonNumber(json, varName, value); }
758 inline void appendToJson(std::string &json,
const std::string &varName,
const long long &value)
const { appendToJsonNumber(json, varName, value); }
759 inline void appendToJson(std::string &json,
const std::string &varName,
const unsigned &value)
const { appendToJsonNumber(json, varName, value); }
760 inline void appendToJson(std::string &json,
const std::string &varName,
const unsigned long &value)
const { appendToJsonNumber(json, varName, value); }
761 inline void appendToJson(std::string &json,
const std::string &varName,
const unsigned long long &value)
const { appendToJsonNumber(json, varName, value); }
762 inline void appendToJson(std::string &json,
const std::string &varName,
const float &value)
const { appendToJsonNumber(json, varName, value); }
763 inline void appendToJson(std::string &json,
const std::string &varName,
const double &value)
const { appendToJsonNumber(json, varName, value); }
764 inline void appendToJson(std::string &json,
const std::string &varName,
const long double &value)
const { appendToJsonNumber(json, varName, value); }
766 inline void appendToJson(std::string& json,
const std::string& varName,
const bool& value)
const {
770 json += (value ? "true" :
"false");
774 inline void appendToJson(std::string& json,
const std::string& varName,
const char* value)
const {
775 if (value !=
nullptr){
776 std::string strValue(value);
777 appendToJson(json, varName, strValue);
781 void appendToJson(std::string& json,
const std::string& varName,
const std::string& value)
const;