defmodule PhilomenaWeb.ReferrerPlug do @moduledoc """ This plug assigns the HTTP Referer, if it exists. Note the misspelling in the standard. ## Example plug PhilomenaWeb.ReferrerPlug """ alias Plug.Conn @doc false @spec init(any()) :: any() def init(opts), do: opts @doc false @spec call(Conn.t(), any()) :: Conn.t() def call(conn, _opts) do case Conn.get_req_header(conn, "referer") do [] -> conn |> Conn.assign(:referrer, "/") [referrer] -> conn |> Conn.assign(:referrer, referrer) end end end