From c63f58f1efe8fb44deb5d328500581b00cbd6556 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 28 Nov 2018 21:35:50 +0800 Subject: [PATCH] [Elixir] fix ":body" handling (#1504) * Fix swagger-api/swagger-codegen/issues/8138 swagger-api/swagger-codegen#8138 When JSON payload needs to be in the body (`"in": "body"`), it must not generate a multi-part body, but embed directly in HTTP body. * update elixir samples * update elixir client samples * remove double quote --- .../src/main/resources/elixir/api.mustache | 2 +- .../elixir/lib/openapi_petstore/api/another_fake.ex | 2 +- .../petstore/elixir/lib/openapi_petstore/api/fake.ex | 8 ++++---- .../lib/openapi_petstore/api/fake_classname_tags123.ex | 2 +- .../petstore/elixir/lib/openapi_petstore/api/pet.ex | 4 ++-- .../petstore/elixir/lib/openapi_petstore/api/store.ex | 2 +- .../petstore/elixir/lib/openapi_petstore/api/user.ex | 8 ++++---- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/elixir/api.mustache b/modules/openapi-generator/src/main/resources/elixir/api.mustache index 48bb292aae1..43f465f3900 100644 --- a/modules/openapi-generator/src/main/resources/elixir/api.mustache +++ b/modules/openapi-generator/src/main/resources/elixir/api.mustache @@ -49,7 +49,7 @@ defmodule {{moduleName}}.Api.{{classname}} do |> url("{{replacedPathName}}") {{#requiredParams}} {{^isPathParam}} - |> add_param({{#isBodyParam}}:body{{/isBodyParam}}{{#isFormParam}}{{#isMultipart}}{{#isFile}}:file{{/isFile}}{{^isFile}}:form{{/isFile}}{{/isMultipart}}{{^isMultipart}}:form{{/isMultipart}}{{/isFormParam}}{{#isQueryParam}}:query{{/isQueryParam}}{{#isHeaderParam}}:headers{{/isHeaderParam}}, :"{{baseName}}", {{#underscored}}{{paramName}}{{/underscored}}) + |> add_param({{#isBodyParam}}:body{{/isBodyParam}}{{#isFormParam}}{{#isMultipart}}{{#isFile}}:file{{/isFile}}{{^isFile}}:form{{/isFile}}{{/isMultipart}}{{^isMultipart}}:form{{/isMultipart}}{{/isFormParam}}{{#isQueryParam}}:query{{/isQueryParam}}{{#isHeaderParam}}:headers{{/isHeaderParam}}, {{#isBodyParam}}:body, {{/isBodyParam}}{{^isBodyParam}}:"{{baseName}}", {{/isBodyParam}}{{#underscored}}{{paramName}}{{/underscored}}) {{/isPathParam}} {{/requiredParams}} {{#optionalParams}} diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/another_fake.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/another_fake.ex index 3a20ea4fa7d..868c0babf88 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/another_fake.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/another_fake.ex @@ -30,7 +30,7 @@ defmodule OpenapiPetstore.Api.AnotherFake do %{} |> method(:patch) |> url("/another-fake/dummy") - |> add_param(:body, :"Client", client) + |> add_param(:body, :body, client) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%OpenapiPetstore.Model.Client{}) diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/fake.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/fake.ex index 6e04b911898..2950acf621a 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/fake.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/fake.ex @@ -137,7 +137,7 @@ defmodule OpenapiPetstore.Api.Fake do %{} |> method(:put) |> url("/fake/body-with-file-schema") - |> add_param(:body, :"FileSchemaTestClass", file_schema_test_class) + |> add_param(:body, :body, file_schema_test_class) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -162,7 +162,7 @@ defmodule OpenapiPetstore.Api.Fake do |> method(:put) |> url("/fake/body-with-query-params") |> add_param(:query, :"query", query) - |> add_param(:body, :"User", user) + |> add_param(:body, :body, user) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -187,7 +187,7 @@ defmodule OpenapiPetstore.Api.Fake do %{} |> method(:patch) |> url("/fake") - |> add_param(:body, :"Client", client) + |> add_param(:body, :body, client) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%OpenapiPetstore.Model.Client{}) @@ -345,7 +345,7 @@ defmodule OpenapiPetstore.Api.Fake do %{} |> method(:post) |> url("/fake/inline-additionalProperties") - |> add_param(:body, :"request_body", request_body) + |> add_param(:body, :body, request_body) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/fake_classname_tags123.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/fake_classname_tags123.ex index f1a9eb3c1ed..d23f7779649 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/fake_classname_tags123.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/fake_classname_tags123.ex @@ -30,7 +30,7 @@ defmodule OpenapiPetstore.Api.FakeClassnameTags123 do %{} |> method(:patch) |> url("/fake_classname_test") - |> add_param(:body, :"Client", client) + |> add_param(:body, :body, client) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%OpenapiPetstore.Model.Client{}) diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/pet.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/pet.ex index 777f3102f8e..8976e16e66c 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/pet.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/pet.ex @@ -29,7 +29,7 @@ defmodule OpenapiPetstore.Api.Pet do %{} |> method(:post) |> url("/pet") - |> add_param(:body, :"Pet", pet) + |> add_param(:body, :body, pet) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -155,7 +155,7 @@ defmodule OpenapiPetstore.Api.Pet do %{} |> method(:put) |> url("/pet") - |> add_param(:body, :"Pet", pet) + |> add_param(:body, :body, pet) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/store.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/store.ex index 381d4ef10e8..5484d84c98d 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/store.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/store.ex @@ -100,7 +100,7 @@ defmodule OpenapiPetstore.Api.Store do %{} |> method(:post) |> url("/store/order") - |> add_param(:body, :"Order", order) + |> add_param(:body, :body, order) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%OpenapiPetstore.Model.Order{}) diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/api/user.ex b/samples/client/petstore/elixir/lib/openapi_petstore/api/user.ex index bf5840bea3a..2b00ccaeee7 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/api/user.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/api/user.ex @@ -30,7 +30,7 @@ defmodule OpenapiPetstore.Api.User do %{} |> method(:post) |> url("/user") - |> add_param(:body, :"User", user) + |> add_param(:body, :body, user) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -54,7 +54,7 @@ defmodule OpenapiPetstore.Api.User do %{} |> method(:post) |> url("/user/createWithArray") - |> add_param(:body, :"User", user) + |> add_param(:body, :body, user) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -78,7 +78,7 @@ defmodule OpenapiPetstore.Api.User do %{} |> method(:post) |> url("/user/createWithList") - |> add_param(:body, :"User", user) + |> add_param(:body, :body, user) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false) @@ -199,7 +199,7 @@ defmodule OpenapiPetstore.Api.User do %{} |> method(:put) |> url("/user/#{username}") - |> add_param(:body, :"User", user) + |> add_param(:body, :body, user) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(false)