/** * OpenAPI Petstore * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. * * OpenAPI spec version: 1.0.0 * * NOTE: This class is auto generated by OpenAPI-Generator 3.3.3-SNAPSHOT. * https://openapi-generator.tech * Do not edit the class manually. */ /* * ModelBase.h * * This is the base class for all model classes */ #ifndef ORG_OPENAPITOOLS_CLIENT_MODEL_ModelBase_H_ #define ORG_OPENAPITOOLS_CLIENT_MODEL_ModelBase_H_ #include "HttpContent.h" #include "MultipartFormData.h" #include #include #include namespace org { namespace openapitools { namespace client { namespace model { class ModelBase { public: ModelBase(); virtual ~ModelBase(); virtual void validate() = 0; virtual web::json::value toJson() const = 0; virtual void fromJson(const web::json::value& json) = 0; virtual void toMultipart(std::shared_ptr multipart, const utility::string_t& namePrefix) const = 0; virtual void fromMultiPart(std::shared_ptr multipart, const utility::string_t& namePrefix) = 0; static web::json::value toJson( const utility::string_t& value ); static web::json::value toJson( const utility::datetime& value ); static web::json::value toJson( std::shared_ptr value ); static web::json::value toJson( std::shared_ptr value ); static web::json::value toJson( int32_t value ); static web::json::value toJson( int64_t value ); static web::json::value toJson( double value ); static web::json::value toJson( bool value ); template static web::json::value toJson(const std::vector& value); static int64_t int64_tFromJson(const web::json::value& val); static int32_t int32_tFromJson(const web::json::value& val); static float floatFromJson(const web::json::value& val); static utility::string_t stringFromJson(const web::json::value& val); static utility::datetime dateFromJson(const web::json::value& val); static double doubleFromJson(const web::json::value& val); static bool boolFromJson(const web::json::value& val); static std::shared_ptr fileFromJson(const web::json::value& val); static std::shared_ptr toHttpContent( const utility::string_t& name, const utility::string_t& value, const utility::string_t& contentType = utility::conversions::to_string_t("")); static std::shared_ptr toHttpContent( const utility::string_t& name, const utility::datetime& value, const utility::string_t& contentType = utility::conversions::to_string_t("")); static std::shared_ptr toHttpContent( const utility::string_t& name, std::shared_ptr value ); static std::shared_ptr toHttpContent( const utility::string_t& name, const web::json::value& value, const utility::string_t& contentType = utility::conversions::to_string_t("application/json") ); static std::shared_ptr toHttpContent( const utility::string_t& name, int32_t value, const utility::string_t& contentType = utility::conversions::to_string_t("") ); static std::shared_ptr toHttpContent( const utility::string_t& name, int64_t value, const utility::string_t& contentType = utility::conversions::to_string_t("") ); static std::shared_ptr toHttpContent( const utility::string_t& name, double value, const utility::string_t& contentType = utility::conversions::to_string_t("") ); template static std::shared_ptr toHttpContent( const utility::string_t& name, const std::vector& value, const utility::string_t& contentType = utility::conversions::to_string_t("") ); static int64_t int64_tFromHttpContent(std::shared_ptr val); static int32_t int32_tFromHttpContent(std::shared_ptr val); static float floatFromHttpContent(std::shared_ptr val); static utility::string_t stringFromHttpContent(std::shared_ptr val); static utility::datetime dateFromHttpContent(std::shared_ptr val); static bool boolFromHttpContent(std::shared_ptr val); static double doubleFromHttpContent(std::shared_ptr val); static web::json::value valueFromHttpContent(std::shared_ptr val); static utility::string_t toBase64( utility::string_t value ); static utility::string_t toBase64( std::shared_ptr value ); static std::shared_ptr fromBase64( const utility::string_t& encoded ); }; template web::json::value ModelBase::toJson(const std::vector& value) { std::vector ret; for (auto& x : value) { ret.push_back(toJson(x)); } return web::json::value::array(ret); } template std::shared_ptr ModelBase::toHttpContent( const utility::string_t& name, const std::vector& value, const utility::string_t& contentType ) { web::json::value json_array = ModelBase::toJson(value); std::shared_ptr content( new HttpContent ); content->setName( name ); content->setContentDisposition( utility::conversions::to_string_t("form-data") ); content->setContentType( contentType ); content->setData( std::shared_ptr( new std::stringstream( utility::conversions::to_utf8string(json_array.serialize()) ) ) ); return content; } } } } } #endif /* ORG_OPENAPITOOLS_CLIENT_MODEL_ModelBase_H_ */