1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/lib/chess_web/plugs/canonical_domain.ex

29 lines
536 B
Elixir

defmodule ChessWeb.Plugs.CanonicalDomain do
@moduledoc false
import Plug.Conn
def init(options) do
options
end
def call(conn, _options) do
if conn.host != canonical_host() do
conn
|> put_status(:moved_permanently)
|> Phoenix.Controller.redirect(external: canonical_domain(conn))
|> halt()
else
conn
end
end
defp canonical_domain(conn) do
"//#{canonical_host()}#{conn.request_path}"
end
defp canonical_host() do
ChessWeb.Endpoint.config(:url)[:host]
end
end