diff --git a/elixir/apps/domain/lib/domain/mailer.ex b/elixir/apps/domain/lib/domain/mailer.ex index 807c5a1ef..4fba77725 100644 --- a/elixir/apps/domain/lib/domain/mailer.ex +++ b/elixir/apps/domain/lib/domain/mailer.ex @@ -93,4 +93,20 @@ defmodule Domain.Mailer do Email.new() |> Email.from({"Firezone Notifications", from_email}) end + + def url(path, params \\ %{}) do + Domain.Config.fetch_env!(:domain, :web_external_url) + |> URI.parse() + |> URI.append_path(path) + |> maybe_append_query(params) + |> URI.to_string() + end + + defp maybe_append_query(uri, params) do + if Enum.empty?(params) do + uri + else + URI.append_query(uri, URI.encode_query(params)) + end + end end diff --git a/elixir/apps/domain/lib/domain/mailer/auth_email.ex b/elixir/apps/domain/lib/domain/mailer/auth_email.ex index e7c604597..6c36ee4c4 100644 --- a/elixir/apps/domain/lib/domain/mailer/auth_email.ex +++ b/elixir/apps/domain/lib/domain/mailer/auth_email.ex @@ -77,20 +77,4 @@ defmodule Domain.Mailer.AuthEmail do subject: subject ) end - - def url(path, params \\ %{}) do - Domain.Config.fetch_env!(:domain, :web_external_url) - |> URI.parse() - |> URI.append_path(path) - |> maybe_append_query(params) - |> URI.to_string() - end - - def maybe_append_query(uri, params) do - if Enum.empty?(params) do - uri - else - URI.append_query(uri, URI.encode_query(params)) - end - end end diff --git a/elixir/apps/domain/lib/domain/mailer/notifications.ex b/elixir/apps/domain/lib/domain/mailer/notifications.ex index 13df86662..223c46f64 100644 --- a/elixir/apps/domain/lib/domain/mailer/notifications.ex +++ b/elixir/apps/domain/lib/domain/mailer/notifications.ex @@ -7,9 +7,8 @@ defmodule Domain.Mailer.Notifications do embed_templates "notifications/*.text", suffix: "_text" def outdated_gateway_email(account, gateways, incompatible_client_count, email) do - url_generator = Application.fetch_env!(:domain, :url_generator) - - outdated_clients_url = url_generator.outdated_clients_url(account.id) + outdated_clients_url = + url("/#{account.id}/clients", %{clients_order_by: "clients:asc:last_seen_version"}) default_email() |> subject("Firezone Gateway Upgrade Available") diff --git a/elixir/apps/web/lib/web/url_generator.ex b/elixir/apps/web/lib/web/url_generator.ex deleted file mode 100644 index bca6a50a8..000000000 --- a/elixir/apps/web/lib/web/url_generator.ex +++ /dev/null @@ -1,17 +0,0 @@ -defmodule Web.UrlGenerator do - @moduledoc """ - Generates URLs for use in emails and other domain-layer notifications. - This breaks the circular dependency between Web and Domain apps. - """ - - use Phoenix.VerifiedRoutes, - endpoint: Web.Endpoint, - router: Web.Router - - @doc """ - Generates URL for the clients page with outdated clients filter. - """ - def outdated_clients_url(account_id) do - url(~p"/#{account_id}/clients?#{[clients_order_by: "clients:asc:last_seen_version"]}") - end -end diff --git a/elixir/config/config.exs b/elixir/config/config.exs index fe22b0898..916f20d4e 100644 --- a/elixir/config/config.exs +++ b/elixir/config/config.exs @@ -202,8 +202,6 @@ config :domain, outbound_email_adapter_configured?: false config :domain, web_external_url: "http://localhost:13000" -config :domain, :url_generator, Web.UrlGenerator - ############################### ##### Web ##################### ###############################