Add dialyzer and resolve all findings closes #503 #504 #514 #516

Merged
moritz merged 16 commits from issue/mitgliederverwaltung-514 into main 2026-06-02 13:15:00 +02:00
Showing only changes of commit 04ab05f556 - Show all commits

View file

@ -25,29 +25,31 @@ defmodule MvWeb.MemberExportController do
@custom_field_prefix Mv.Constants.custom_field_prefix() @custom_field_prefix Mv.Constants.custom_field_prefix()
def export(conn, params) do def export(conn, params) do
actor = current_actor(conn) case current_actor(conn) do
if is_nil(actor), do: return_forbidden(conn) nil -> return_forbidden(conn)
actor -> export_with_actor(conn, actor, params["payload"])
end
end
case params["payload"] do defp export_with_actor(conn, actor, payload) when is_binary(payload) do
nil ->
conn
|> put_status(400)
|> put_resp_content_type("application/json")
|> json(%{error: "payload required"})
payload when is_binary(payload) ->
case Jason.decode(payload) do case Jason.decode(payload) do
{:ok, decoded} when is_map(decoded) -> {:ok, decoded} when is_map(decoded) ->
parsed = parse_and_validate(decoded) run_export(conn, actor, parse_and_validate(decoded))
run_export(conn, actor, parsed)
_ -> _ ->
json_error(conn, "invalid JSON")
end
end
defp export_with_actor(conn, _actor, _payload) do
json_error(conn, "payload required")
end
defp json_error(conn, message) do
conn conn
|> put_status(400) |> put_status(400)
|> put_resp_content_type("application/json") |> put_resp_content_type("application/json")
|> json(%{error: "invalid JSON"}) |> json(%{error: message})
end
end
end end
defp current_actor(conn) do defp current_actor(conn) do