Skip to content

Commit 06429e5

Browse files
committed
implicit json decoding
1 parent 05169f6 commit 06429e5

4 files changed

Lines changed: 20 additions & 24 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ defmodule {{moduleName}}.Connection do
150150
[
151151
{Tesla.Middleware.BaseUrl, base_url},
152152
{Tesla.Middleware.Headers, [{"user-agent", user_agent}]},
153-
{Tesla.Middleware.EncodeJson, engine: json_engine}
153+
{Tesla.Middleware.JSON, engine: json_engine}
154154
| middleware
155155
]
156156
end

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -190,17 +190,15 @@ defmodule {{moduleName}}.RequestBuilder do
190190
JSON.decode(body)
191191
end
192192

193-
defp decode(%Tesla.Env{body: body}, module) do
194-
case JSON.decode(body) do
195-
{:ok, objects} when is_list(objects) ->
196-
models = Enum.map(objects, fn object ->
197-
{:ok, model} = to_model(module, object)
198-
model
199-
end)
200-
{:ok, models}
201-
{:ok, params} -> to_model(module, params)
202-
{:error, error} -> {:error, error}
203-
end
193+
defp decode(%Tesla.Env{body: response}, module) when is_list(response) do
194+
models = Enum.map(response, fn params ->
195+
{:ok, model} = to_model(module, params)
196+
model
197+
end)
198+
{:ok, models}
199+
end
200+
defp decode(%Tesla.Env{body: params}, module) do
201+
to_model(module, params)
204202
end
205203

206204
defp to_model(module, params) do

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ defmodule OpenapiPetstore.Connection do
130130
[
131131
{Tesla.Middleware.BaseUrl, base_url},
132132
{Tesla.Middleware.Headers, [{"user-agent", user_agent}]},
133-
{Tesla.Middleware.EncodeJson, engine: json_engine}
133+
{Tesla.Middleware.JSON, engine: json_engine}
134134
| middleware
135135
]
136136
end

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -192,17 +192,15 @@ defmodule OpenapiPetstore.RequestBuilder do
192192
JSON.decode(body)
193193
end
194194

195-
defp decode(%Tesla.Env{body: body}, module) do
196-
case JSON.decode(body) do
197-
{:ok, objects} when is_list(objects) ->
198-
models = Enum.map(objects, fn object ->
199-
{:ok, model} = to_model(module, object)
200-
model
201-
end)
202-
{:ok, models}
203-
{:ok, params} -> to_model(module, params)
204-
{:error, error} -> {:error, error}
205-
end
195+
defp decode(%Tesla.Env{body: response}, module) when is_list(response) do
196+
models = Enum.map(response, fn params ->
197+
{:ok, model} = to_model(module, params)
198+
model
199+
end)
200+
{:ok, models}
201+
end
202+
defp decode(%Tesla.Env{body: params}, module) do
203+
to_model(module, params)
206204
end
207205

208206
defp to_model(module, params) do

0 commit comments

Comments
 (0)