/** * Swagger Petstore * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. * * OpenAPI spec version: 1.0.0 * Contact: apiteam@swagger.io * * NOTE: This class is auto generated by the swagger code generator 2.3.0-SNAPSHOT. * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ #include "UserApi.h" #include "IHttpBody.h" #include "JsonBody.h" #include "MultipartFormData.h" #include #include namespace io { namespace swagger { namespace client { namespace api { using namespace io::swagger::client::model; UserApi::UserApi( std::shared_ptr apiClient ) : m_ApiClient(apiClient) { } UserApi::~UserApi() { } pplx::task UserApi::createUser(std::shared_ptr body) { // verify the required parameter 'body' is set if (body == nullptr) { throw ApiException(400, U("Missing required parameter 'body' when calling UserApi->createUser")); } std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user"); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->createUser does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); web::json::value json; json = ModelBase::toJson(body); httpBody = std::shared_ptr( new JsonBody( json ) ); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); std::shared_ptr multipart(new MultipartFormData); if(body.get()) { body->toMultipart(multipart, U("body")); } httpBody = multipart; requestHttpContentType += U("; boundary=") + multipart->getBoundary(); } else { throw ApiException(415, U("UserApi->createUser does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling createUser: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling createUser: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } pplx::task UserApi::createUsersWithArrayInput(std::vector> body) { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/createWithArray"); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->createUsersWithArrayInput does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); web::json::value json; { std::vector jsonArray; for( auto& item : body ) { jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() ); } json = web::json::value::array(jsonArray); } httpBody = std::shared_ptr( new JsonBody( json ) ); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); std::shared_ptr multipart(new MultipartFormData); { std::vector jsonArray; for( auto& item : body ) { jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() ); } multipart->add(ModelBase::toHttpContent(U("body"), web::json::value::array(jsonArray), U("application/json"))); } httpBody = multipart; requestHttpContentType += U("; boundary=") + multipart->getBoundary(); } else { throw ApiException(415, U("UserApi->createUsersWithArrayInput does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling createUsersWithArrayInput: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling createUsersWithArrayInput: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } pplx::task UserApi::createUsersWithListInput(std::vector> body) { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/createWithList"); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->createUsersWithListInput does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); web::json::value json; { std::vector jsonArray; for( auto& item : body ) { jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() ); } json = web::json::value::array(jsonArray); } httpBody = std::shared_ptr( new JsonBody( json ) ); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); std::shared_ptr multipart(new MultipartFormData); { std::vector jsonArray; for( auto& item : body ) { jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() ); } multipart->add(ModelBase::toHttpContent(U("body"), web::json::value::array(jsonArray), U("application/json"))); } httpBody = multipart; requestHttpContentType += U("; boundary=") + multipart->getBoundary(); } else { throw ApiException(415, U("UserApi->createUsersWithListInput does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling createUsersWithListInput: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling createUsersWithListInput: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } pplx::task UserApi::deleteUser(utility::string_t username) { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/{username}"); boost::replace_all(path, U("{") U("username") U("}"), ApiClient::parameterToString(username)); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->deleteUser does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); } else { throw ApiException(415, U("UserApi->deleteUser does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("DELETE"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling deleteUser: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling deleteUser: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } pplx::task> UserApi::getUserByName(utility::string_t username) { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/{username}"); boost::replace_all(path, U("{") U("username") U("}"), ApiClient::parameterToString(username)); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->getUserByName does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); } else { throw ApiException(415, U("UserApi->getUserByName does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling getUserByName: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling getUserByName: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { std::shared_ptr result(new User()); if(responseHttpContentType == U("application/json")) { web::json::value json = web::json::value::parse(response); result->fromJson(json); } // else if(responseHttpContentType == U("multipart/form-data")) // { // TODO multipart response parsing // } else { throw ApiException(500 , U("error calling getUserByName: unsupported response type")); } return result; }); } pplx::task UserApi::loginUser(utility::string_t username, utility::string_t password) { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/login"); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("text/plain"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } // plain text else if( responseHttpContentTypes.find(U("text/plain")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("text/plain"); } else { throw ApiException(400, U("UserApi->loginUser does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; { queryParams[U("username")] = ApiClient::parameterToString(username); } { queryParams[U("password")] = ApiClient::parameterToString(password); } std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); } else { throw ApiException(415, U("UserApi->loginUser does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling loginUser: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling loginUser: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { utility::string_t result(U("")); if(responseHttpContentType == U("application/json")) { web::json::value json = web::json::value::parse(response); result = ModelBase::stringFromJson(json); } else if(responseHttpContentType == U("text/plain")) { result = response; } // else if(responseHttpContentType == U("multipart/form-data")) // { // TODO multipart response parsing // } else { throw ApiException(500 , U("error calling loginUser: unsupported response type")); } return result; }); } pplx::task UserApi::logoutUser() { std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/logout"); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->logoutUser does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); } else { throw ApiException(415, U("UserApi->logoutUser does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling logoutUser: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling logoutUser: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } pplx::task UserApi::updateUser(utility::string_t username, std::shared_ptr body) { // verify the required parameter 'body' is set if (body == nullptr) { throw ApiException(400, U("Missing required parameter 'body' when calling UserApi->updateUser")); } std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() ); utility::string_t path = U("/user/{username}"); boost::replace_all(path, U("{") U("username") U("}"), ApiClient::parameterToString(username)); std::map queryParams; std::map headerParams( apiConfiguration->getDefaultHeaders() ); std::map formParams; std::map> fileParams; std::unordered_set responseHttpContentTypes; responseHttpContentTypes.insert( U("application/xml") ); responseHttpContentTypes.insert( U("application/json") ); utility::string_t responseHttpContentType; // use JSON if possible if ( responseHttpContentTypes.size() == 0 ) { responseHttpContentType = U("application/json"); } // JSON else if ( responseHttpContentTypes.find(U("application/json")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("application/json"); } // multipart formdata else if( responseHttpContentTypes.find(U("multipart/form-data")) != responseHttpContentTypes.end() ) { responseHttpContentType = U("multipart/form-data"); } else { throw ApiException(400, U("UserApi->updateUser does not produce any supported media type")); } headerParams[U("Accept")] = responseHttpContentType; std::unordered_set consumeHttpContentTypes; std::shared_ptr httpBody; utility::string_t requestHttpContentType; // use JSON if possible if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(U("application/json")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("application/json"); web::json::value json; json = ModelBase::toJson(body); httpBody = std::shared_ptr( new JsonBody( json ) ); } // multipart formdata else if( consumeHttpContentTypes.find(U("multipart/form-data")) != consumeHttpContentTypes.end() ) { requestHttpContentType = U("multipart/form-data"); std::shared_ptr multipart(new MultipartFormData); if(body.get()) { body->toMultipart(multipart, U("body")); } httpBody = multipart; requestHttpContentType += U("; boundary=") + multipart->getBoundary(); } else { throw ApiException(415, U("UserApi->updateUser does not consume any supported media type")); } //Set the request content type in the header. headerParams[U("Content-Type")] = requestHttpContentType; return m_ApiClient->callApi(path, U("PUT"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType) .then([=](web::http::http_response response) { // 1xx - informational : OK // 2xx - successful : OK // 3xx - redirection : OK // 4xx - client error : not OK // 5xx - client error : not OK if (response.status_code() >= 400) { throw ApiException(response.status_code() , U("error calling updateUser: ") + response.reason_phrase() , std::make_shared(response.extract_utf8string(true).get())); } // check response content type if(response.headers().has(U("Content-Type"))) { utility::string_t contentType = response.headers()[U("Content-Type")]; if( contentType.find(responseHttpContentType) == std::string::npos ) { throw ApiException(500 , U("error calling updateUser: unexpected response type: ") + contentType , std::make_shared(response.extract_utf8string(true).get())); } } return response.extract_string(); }) .then([=](utility::string_t response) { return void(); }); } } } } }