yatbcpp  0.0.1
Yet another Telegram Bot CPP Library
All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
Chat_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/Chat.h"
8 
9 namespace yatbcpp{
10 
16  template <> Chat fromJson(Json::Value Data) {
17  if(!Data.isMember("id")){
18  throw essential_key_missing("Chat::id is missing");
19  }
20  if(!Data.isMember("type")){
21  throw essential_key_missing("Chat::type is missing");
22  }
23 
24  std::int64_t id = Data["id"].asInt64();
25  std::string s_chatType = Data["type"].asString();
26  chat_type chatType = yatbcpp::fromString<chat_type>(Data["type"].asString());
27 
28  /*if(s_chatType[0]=='P'){
29  chatType = chat_type::Private;
30  }
31  else if(s_chatType[0]=='G'){
32  chatType = chat_type::Group;
33  }
34  else if(s_chatType[0]=='S'){
35  chatType = chat_type::Supergroup;
36  }
37  else if(s_chatType[0]=='C'){
38  chatType = chat_type::Channel;
39  }*/
40 
41  Chat ret(id,chatType);
42  //additional information//add fast option so additional data is ignored sometimes?
43  if(Data.isMember("title")){
44  ret.setTitle(Data["title"].asString());
45  }
46  if(Data.isMember("username")){
47  ret.setUsername(Data["username"].asString());
48  }
49  if(Data.isMember("first_name")){
50  ret.setFirst_name(Data["first_name"].asString());
51  }
52  if(Data.isMember("last_name")){
53  ret.setLast_name(Data["last_name"].asString());
54  }
55  if(Data.isMember("all_members_are_administrators")){
56  ret.setAll_members_are_administrators(Data["all_members_are_administrators"].asBool());
57  }
58  if(Data.isMember("description")){
59  ret.setDescription(Data["description"].asString());
60  }
61  if(Data.isMember("invite_link")){
62  ret.setInvite_link(Data["description"].asString());
63  }
64  return ret;
65  }
66 }
T fromJson(Json::Value Data)
chat_type
Definition: chat_type.h:6
Definition: Bot.h:27