Skip to content

Commit 248a78b

Browse files
authored
fix outer enum number bug elixir generator (OpenAPITools#20592)
1 parent cba1936 commit 248a78b

3 files changed

Lines changed: 14 additions & 10 deletions

File tree

modules/openapi-generator/src/main/resources/elixir/deserializer.ex.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,6 @@ defmodule {{moduleName}}.Deserializer do
9494
defp to_struct(value, module)
9595
defp to_struct(nil, _), do: nil
9696

97-
defp to_struct(binary, module) when is_binary(binary) and is_atom(module) do
98-
module.decode(binary)
99-
end
100-
10197
defp to_struct(list, module) when is_list(list) and is_atom(module) do
10298
Enum.map(list, &to_struct(&1, module))
10399
end
@@ -113,4 +109,8 @@ defmodule {{moduleName}}.Deserializer do
113109
end)
114110
|> module.decode()
115111
end
112+
113+
defp to_struct(value, module) when is_atom(module) do
114+
module.decode(value)
115+
end
116116
end

samples/client/petstore/elixir/lib/openapi_petstore/deserializer.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,6 @@ defmodule OpenapiPetstore.Deserializer do
9696
defp to_struct(value, module)
9797
defp to_struct(nil, _), do: nil
9898

99-
defp to_struct(binary, module) when is_binary(binary) and is_atom(module) do
100-
module.decode(binary)
101-
end
102-
10399
defp to_struct(list, module) when is_list(list) and is_atom(module) do
104100
Enum.map(list, &to_struct(&1, module))
105101
end
@@ -115,4 +111,8 @@ defmodule OpenapiPetstore.Deserializer do
115111
end)
116112
|> module.decode()
117113
end
114+
115+
defp to_struct(value, module) when is_atom(module) do
116+
module.decode(value)
117+
end
118118
end

samples/client/petstore/elixir/test/outer_enum_test.exs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ defmodule OuterEnumTest do
77
@valid_json """
88
{
99
"enum_string": "UPPER",
10-
"outerEnum": "placed"
10+
"enum_number": 1.1,
11+
"outerEnum": "placed",
12+
"outerEnumInteger": 1
1113
}
1214
"""
1315

@@ -17,7 +19,9 @@ defmodule OuterEnumTest do
1719
{:ok,
1820
%EnumTest{
1921
enum_string: "UPPER",
20-
outerEnum: "placed"
22+
enum_number: 1.1,
23+
outerEnum: "placed",
24+
outerEnumInteger: 1
2125
}}
2226
end
2327
end

0 commit comments

Comments
 (0)