Skip to content

Commit 2e4ca61

Browse files
committed
fix: merge body params into params as per Plug conventions
1 parent 844f24a commit 2e4ca61

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/open_api_spex/operation2.ex

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ defmodule OpenApiSpex.Operation2 do
7272
end
7373

7474
defp maybe_replace_body(conn, _body, false), do: conn
75-
defp maybe_replace_body(conn, body, true), do: %{conn | body_params: body}
75+
defp maybe_replace_body(conn = %{params: params}, body, true),
76+
do: %{conn | body_params: body, params: Map.merge(params, body)}
7677

7778
defp cast_parameters(conn, operation, spec, opts) do
7879
CastParameters.cast(conn, operation, spec, opts)

test/operation2_test.exs

+7-2
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@ defmodule OpenApiSpex.Operation2Test do
175175

176176
describe "cast/4" do
177177
test "cast request body" do
178-
conn = create_conn(%{"user" => %{"email" => "[email protected]"}})
178+
conn =
179+
create_conn(%{"user" => %{"email" => "[email protected]"}})
180+
|> Map.put(:params, %{"id" => 1})
179181

180182
assert {:ok, conn} =
181183
Operation2.cast(
@@ -185,7 +187,10 @@ defmodule OpenApiSpex.Operation2Test do
185187
"application/json"
186188
)
187189

188-
assert %Plug.Conn{} = conn
190+
assert %Plug.Conn{
191+
body_params: %{user: %{email: "[email protected]"}},
192+
params: %{user: %{email: "[email protected]"}}
193+
} = conn
189194
end
190195

191196
test "cast request body with replace_params: false" do

0 commit comments

Comments
 (0)