diff --git a/lib/cors_plug.ex b/lib/cors_plug.ex index e94e9c2..a393c5a 100644 --- a/lib/cors_plug.ex +++ b/lib/cors_plug.ex @@ -26,6 +26,17 @@ defmodule CORSPlug do ] end + @doc false + def call(conn, options) do + conn = merge_resp_headers(conn, headers(conn, options)) + + case {options[:send_preflight_response?], conn.method} do + {true, "OPTIONS"} -> conn |> send_resp(204, "") |> halt() + {_, _method} -> conn + end + end + + @doc false def init(options) do options |> prepare_cfg(Application.get_all_env(:cors_plug)) @@ -41,15 +52,6 @@ defmodule CORSPlug do |> Keyword.merge(options) end - def call(conn, options) do - conn = merge_resp_headers(conn, headers(conn, options)) - - case {options[:send_preflight_response?], conn.method} do - {true, "OPTIONS"} -> conn |> send_resp(204, "") |> halt() - {_, _method} -> conn - end - end - # headers specific to OPTIONS request defp headers(conn = %Plug.Conn{method: "OPTIONS"}, options) do headers(%{conn | method: nil}, options) ++