From 025bf3aa8018aa0be2e6e7d519bdb98a9e83245e Mon Sep 17 00:00:00 2001 From: stkrwork Date: Thu, 22 Jun 2017 17:00:54 +0200 Subject: [PATCH 1/3] Final fix for cpprest for issue #5862 (#5893) * - Added Restbed Generator * - Added Json processing functions to model - Removed unnused code from restbed codegen class - Added response header processing to api template * Changed it to respect alphabetical order * Made the string joining java 7 compatible * Added samples * First step in fixing the cpp rest template regenerated new samples TODO: Fix the other functions * Updated samples * Added isMapContainer check * Fixed item selection in json object for MapContainer * - Fixed Syntax error in C++ - Fixed Syntax error in Mustache, that escaped characters --- .../resources/cpprest/model-source.mustache | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache index 38388fa4fa5..e90e2a5371c 100644 --- a/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache +++ b/modules/swagger-codegen/src/main/resources/cpprest/model-source.mustache @@ -90,8 +90,8 @@ web::json::value {{classname}}::toJson() const for( auto& item : m_{{name}} ) { web::json::value tmp = web::json::value::object(); - tmp[U("key")] = ModelBase::toJson(item.first()); - tmp[U("value")] = ModelBase::toJson(item.second()); + tmp[U("key")] = ModelBase::toJson(item.first); + tmp[U("value")] = ModelBase::toJson(item.second); jsonArray.push_back(tmp); } {{#required}} @@ -200,32 +200,32 @@ void {{classname}}::fromJson(web::json::value& val) {{/required}} for( auto& item : val[U("{{baseName}}")].as_array() ) { - utility::string_t key = ""; + utility::string_t key; if(item.has_field(U("key"))) { key = ModelBase::stringFromJson(item[U("key")]); } {{#items.isPrimitiveType}} - m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); {{/items.isPrimitiveType}} {{^items.isPrimitiveType}} {{#items.isString}} - m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); {{/items.isString}} {{^items.isString}} {{#items.isDateTime}} - m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); {{/items.isDateTime}} {{^items.isDateTime}} if(item.is_null()) { - m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); } else { {{{items.datatype}}} newItem({{{items.defaultValue}}}); newItem->fromJson(item[U("value")]); - m_{{name}}.insert(std::pair( key, newItem )); + m_{{name}}.insert(std::pair( key, newItem )); } {{/items.isDateTime}} {{/items.isString}} @@ -334,8 +334,8 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co for( auto& item : m_{{name}} ) { web::json::value tmp = web::json::value::object(); - tmp[U("key")] = ModelBase::toJson(item.first()); - tmp[U("value")] = ModelBase::toJson(item.second()); + tmp[U("key")] = ModelBase::toJson(item.first); + tmp[U("value")] = ModelBase::toJson(item.second); jsonArray.push_back(tmp); } {{#required}}multipart->add(ModelBase::toHttpContent(namePrefix + U("{{baseName}}"), web::json::value::array(jsonArray), U("application/json"))); @@ -463,32 +463,32 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, web::json::value jsonArray = web::json::value::parse(ModelBase::stringFromHttpContent(multipart->getContent(U("{{baseName}}")))); for( auto& item : jsonArray.as_array() ) { - utility::string_t key = ""; + utility::string_t key; if(item.has_field(U("key"))) { key = ModelBase::stringFromJson(item[U("key")]); } {{#items.isPrimitiveType}} - m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::{{items.baseType}}FromJson(item[U("value")]))); {{/items.isPrimitiveType}} {{^items.isPrimitiveType}} {{#items.isString}} - m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::stringFromJson(item[U("value")]))); {{/items.isString}} {{^items.isString}} {{#items.isDateTime}} - m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); + m_{{name}}.insert(std::pair( key, ModelBase::dateFromJson(item[U("value")]))); {{/items.isDateTime}} {{^items.isDateTime}} if(item.is_null()) { - m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); + m_{{name}}.insert(std::pair( key, {{{items.datatype}}}(nullptr) )); } else { {{{items.datatype}}} newItem({{{items.defaultValue}}}); newItem->fromJson(item[U("value")]); - m_{{name}}.insert(std::pair( key, newItem )); + m_{{name}}.insert(std::pair( key, newItem )); } {{/items.isDateTime}} {{/items.isString}} From d67cb9c30b52213caed1f288a2727c05747e20e8 Mon Sep 17 00:00:00 2001 From: Hugo Kiyodi Oshiro Date: Thu, 22 Jun 2017 15:27:50 -0300 Subject: [PATCH 2/3] Fix wrong es6 template path (#5904) --- .../io/swagger/codegen/languages/JavascriptClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java index 88d8ef0e550..f6545d57aa1 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java @@ -431,7 +431,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo public void setUseES6(boolean useES6) { this.useES6 = useES6; if (useES6) { - embeddedTemplateDir = templateDir = "Javascript-es6"; + embeddedTemplateDir = templateDir = "Javascript/es6"; } else { embeddedTemplateDir = templateDir = "Javascript"; } From 69ce9213719e1b804fbfdf7189d20c257280d201 Mon Sep 17 00:00:00 2001 From: Stanislav Bondarenko Date: Thu, 22 Jun 2017 23:31:30 -0400 Subject: [PATCH 3/3] Python - Increase range of valid status codes (#5901) swagger-client shouldn't throw ApiException if status code in range 200-299 --- modules/swagger-codegen/src/main/resources/python/rest.mustache | 2 +- samples/client/petstore/python/petstore_api/rest.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/python/rest.mustache b/modules/swagger-codegen/src/main/resources/python/rest.mustache index 6c2c21d3055..b801938dc52 100644 --- a/modules/swagger-codegen/src/main/resources/python/rest.mustache +++ b/modules/swagger-codegen/src/main/resources/python/rest.mustache @@ -206,7 +206,7 @@ class RESTClientObject(object): # log response body logger.debug("response body: %s", r.data) - if r.status not in range(200, 206): + if not 200 <= r.status <= 299: raise ApiException(http_resp=r) return r diff --git a/samples/client/petstore/python/petstore_api/rest.py b/samples/client/petstore/python/petstore_api/rest.py index 3ed3cf31849..c567f731294 100644 --- a/samples/client/petstore/python/petstore_api/rest.py +++ b/samples/client/petstore/python/petstore_api/rest.py @@ -215,7 +215,7 @@ class RESTClientObject(object): # log response body logger.debug("response body: %s", r.data) - if r.status not in range(200, 206): + if not 200 <= r.status <= 299: raise ApiException(http_resp=r) return r