defmodule ToweropsWeb.SitemapController do @moduledoc false use ToweropsWeb, :controller @public_urls ["/", "/privacy", "/terms", "/docs/api", "/docs/graphql", "/help"] def index(conn, _params) do base_url = ToweropsWeb.Endpoint.url() xml = build_sitemap(base_url) conn |> put_resp_content_type("text/xml") |> send_resp(200, xml) end defp build_sitemap(base_url) do urls = Enum.map_join(@public_urls, "\n", fn path -> " #{base_url}#{path}" end) String.trim(""" #{urls} """) end end