From 0ea1ead59e41e4e8a959235dc8234d44447a9658 Mon Sep 17 00:00:00 2001 From: dan-drl <43010333+dan-drl@users.noreply.github.com> Date: Fri, 20 Sep 2019 11:13:33 -0700 Subject: [PATCH] Fix 3886 ishttpcontent not set (#3888) * Fix issue deserializing to nullptr * Update codegen files * Fix error matching on DataType's value * Fix return type. Should be shared pointer --- .../codegen/languages/CppRestSdkClientCodegen.java | 2 +- .../main/resources/cpp-rest-sdk-client/api-source.mustache | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java index ddfdcbb0e0b4..25be57289d73 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java @@ -242,7 +242,7 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen { if (response != null) { CodegenProperty cm = fromProperty("response", response); op.vendorExtensions.put("x-codegen-response", cm); - if ("HttpContent".equals(cm.dataType)) { + if ("std::shared_ptr".equals(cm.dataType)) { op.vendorExtensions.put("x-codegen-response-ishttpcontent", true); } } diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache index effb911aa827..c3691a55382c 100644 --- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache @@ -294,9 +294,9 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r }) .then([=](std::vector localVarResponse) { - HttpContent localVarResult; + {{{returnType}}} localVarResult; std::shared_ptr stream = std::make_shared(std::string(localVarResponse.begin(), localVarResponse.end())); - localVarResult.setData(stream); + localVarResult->setData(stream); return localVarResult; {{/vendorExtensions.x-codegen-response-ishttpcontent}} {{^vendorExtensions.x-codegen-response-ishttpcontent}}