yatbcpp  0.0.1
Yet another Telegram Bot CPP Library
MessageEntity_fromJson.cc
Go to the documentation of this file.
1 // From JSON Specialication //
4 #include <jsoncpp/json/json.h>
5 #include "types/telegram_type.h"
7 #include "types/MessageEntity.h"
8 
9 using namespace std;
10 
11 namespace yatbcpp {
17  template<> MessageEntity fromJson(Json::Value Data) {
18  if (!Data.isMember("type")) {
19  throw essential_key_missing("MessageEntity::type is missing");
20  }
21  if (!Data.isMember("offset")) {
22  throw essential_key_missing("MessageEntity::offset is missing");
23  }
24  if (!Data.isMember("length")) {
25  throw essential_key_missing("MessageEntity::length is missing");
26  }
27 
28  std::string type = Data["type"].asString();
29  std::int32_t offset = Data["offset"].asInt();
30  std::int32_t length = Data["length"].asInt();
31 
32  MessageEntity ret(type, offset, length);
33 
34  if (Data.isMember("url")) {
35  ret.setUrl(Data["url"].asString());
36  }
37  if (Data.isMember("user")) {
38  ret.setUser(yatbcpp::fromJson<User>(Data["user"]));
39  }
40  return ret;
41  }
42 }
Definition: Bot.h:27
MessageEntity fromJson(Json::Value Data)
User fromJson< User >(Json::Value Data)
void setUrl(const std::optional< std::string > &url)
void setUser(const std::optional< User > &user)