diff --git a/modules/openapi-generator/src/main/resources/elixir/deserializer.ex.mustache b/modules/openapi-generator/src/main/resources/elixir/deserializer.ex.mustache index 53a68dfde0f..6c3ece2818a 100644 --- a/modules/openapi-generator/src/main/resources/elixir/deserializer.ex.mustache +++ b/modules/openapi-generator/src/main/resources/elixir/deserializer.ex.mustache @@ -94,10 +94,6 @@ defmodule {{moduleName}}.Deserializer do defp to_struct(value, module) defp to_struct(nil, _), do: nil - defp to_struct(binary, module) when is_binary(binary) and is_atom(module) do - module.decode(binary) - end - defp to_struct(list, module) when is_list(list) and is_atom(module) do Enum.map(list, &to_struct(&1, module)) end @@ -113,4 +109,8 @@ defmodule {{moduleName}}.Deserializer do end) |> module.decode() end + + defp to_struct(value, module) when is_atom(module) do + module.decode(value) + end end diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/deserializer.ex b/samples/client/petstore/elixir/lib/openapi_petstore/deserializer.ex index 01cb4bbdf5f..ff702b7bd29 100644 --- a/samples/client/petstore/elixir/lib/openapi_petstore/deserializer.ex +++ b/samples/client/petstore/elixir/lib/openapi_petstore/deserializer.ex @@ -96,10 +96,6 @@ defmodule OpenapiPetstore.Deserializer do defp to_struct(value, module) defp to_struct(nil, _), do: nil - defp to_struct(binary, module) when is_binary(binary) and is_atom(module) do - module.decode(binary) - end - defp to_struct(list, module) when is_list(list) and is_atom(module) do Enum.map(list, &to_struct(&1, module)) end @@ -115,4 +111,8 @@ defmodule OpenapiPetstore.Deserializer do end) |> module.decode() end + + defp to_struct(value, module) when is_atom(module) do + module.decode(value) + end end diff --git a/samples/client/petstore/elixir/test/outer_enum_test.exs b/samples/client/petstore/elixir/test/outer_enum_test.exs index 5cb41e8fc59..d8a6f38cf06 100644 --- a/samples/client/petstore/elixir/test/outer_enum_test.exs +++ b/samples/client/petstore/elixir/test/outer_enum_test.exs @@ -7,7 +7,9 @@ defmodule OuterEnumTest do @valid_json """ { "enum_string": "UPPER", - "outerEnum": "placed" + "enum_number": 1.1, + "outerEnum": "placed", + "outerEnumInteger": 1 } """ @@ -17,7 +19,9 @@ defmodule OuterEnumTest do {:ok, %EnumTest{ enum_string: "UPPER", - outerEnum: "placed" + enum_number: 1.1, + outerEnum: "placed", + outerEnumInteger: 1 }} end end