yatbcpp  0.0.1
Yet another Telegram Bot CPP Library
Audio_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/Audio.h"
8 namespace yatbcpp{
9 
15  template <> Audio fromJson(Json::Value Data) {
16  if(!Data.isMember("file_id")){
17  throw essential_key_missing("Audio::file_id is missing");
18  }
19  if(!Data.isMember("duration")){
20  throw essential_key_missing("Audio::duration is missing");
21  }
22 
23  std::string file_id = Data["file_id"].asString();
24  std::int32_t duration = Data["duration"].asInt();
25 
26  Audio ret(file_id,duration);
27 
28  if(Data.isMember("performer")){
29  ret.setPerformer(Data["performer"].asString());
30  }
31  if(Data.isMember("title")){
32  ret.setTitle(Data["title"].asString());
33  }
34  if(Data.isMember("mime_type")){
35  ret.setMime_type(Data["mime_type"].asString());
36  }
37  if(Data.isMember("file_size")){
38  ret.setFile_size(Data["file_size"].asInt());
39  }
40  return ret;
41  }
42 }
T fromJson(Json::Value Data)
void setPerformer(const std::optional< std::string > &performer)
Definition: Audio.cc:33
Definition: Bot.h:27
void setMime_type(const std::optional< std::string > &mime_type)
Definition: Audio.cc:41
void setTitle(const std::optional< std::string > &title)
Definition: Audio.cc:37
void setFile_size(const std::optional< std::int32_t > &file_size)
Definition: Audio.cc:45