#ifndef TELEBOTXX_JSON_OBJECTS_HPP #define TELEBOTXX_JSON_OBJECTS_HPP #include #include #include #include #include namespace telebotxx { const bool REQUIRED = true; const bool OPTIONAL = false; /// \brief Parse JSON object to Chat /// \param parent reference to parent JSON object /// \param name field with Chat object /// \param required REQUIRED or OPTIONAL /// \return pointer to Chat std::unique_ptr parseChat(const rapidjson::Value& parent, const char* name, bool required); /// \brief Parse JSON object to User /// \param parent reference to parent JSON object /// \param name field with Document object /// \param required REQUIRED or OPTIONAL /// \return pointer to User std::unique_ptr parseUser(const rapidjson::Value& parent, const char* name, bool required); /// \brief Parse JSON object to Message /// \param parent reference to parent JSON object /// \param name field with Message object /// \param required REQUIRED or OPTIONAL /// \return pointer to Message std::unique_ptr parseMessage(const rapidjson::Value& parent, const char* name, bool required); /// \brief Check JSON response /// /// Throws an exception if error code recieved. /// \param doc reference to JSON document void checkResponse(const rapidjson::Document& doc); } #endif // TELEBOTXX_JSON_OBJECTS_HPP