Hi, may I know why does my Routes.path pick up the wrong route?
I have only two routes for this entity
presentation_session_path GET /api/presentations/:presentation_id/sessions/:id SentiWeb.SessionController :show
presentation_session_path POST /api/presentations/:presentation_id/sessions SentiWeb.SessionController :create
In my session create method
def create(conn, %{"session" => session_params}) do
with {:ok, %Sessions{} = session} <- Questionnaire.create_session(session_params) do
conn
|> put_status(:created)
|> put_resp_header("location", Routes.presentation_session_path(conn, :show, session))
|> render("show.json", session: session)
else
_ -> json(conn, %{Message: "Please enter the questions for the selected presentation!"})
end
end
In |> put_resp_header
line, I expect the GET route path would be pick up but it wasn’t and instead its the POST method as per Dialyzer
Dialyzer warning:
positions 2nd from the success typing arguments:
(atom() | struct(), :create, any())
ElixirLS Dialyzer
Can someone enlighten me, why would Routes.presentation_session_path
expects :create
as expected argument instead of :show
?