refactor: use Phoenix verified routes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2023-12-01 09:49:54 +01:00
parent 4f15535fa9
commit b315e1d7ff
83 changed files with 227 additions and 372 deletions

View File

@@ -19,6 +19,7 @@ defmodule Mobilizon.Actors.Actor do
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
use Mobilizon.Web, :verified_routes
import Mobilizon.Web.Gettext, only: [dgettext: 2]
import Mobilizon.Service.Guards, only: [is_valid_string: 1]
@@ -445,7 +446,7 @@ defmodule Mobilizon.Actors.Actor do
# Relay has a special URI
def build_url("relay", :page, _args),
do: Endpoint |> Routes.activity_pub_url(:relay) |> URI.decode()
do: ~p"/relay" |> url() |> URI.decode()
def build_url(preferred_username, endpoint, args)
when endpoint in [:page, :resources, :posts, :discussions, :events, :todos] do

View File

@@ -15,8 +15,7 @@ defmodule Mobilizon.Discussions.Comment do
alias Mobilizon.Medias.Media
alias Mobilizon.Mention
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
use Mobilizon.Web, :verified_routes
@type t :: %__MODULE__{
text: String.t(),
@@ -160,7 +159,7 @@ defmodule Mobilizon.Discussions.Comment do
end
@spec generate_url(String.t()) :: String.t()
defp generate_url(uuid), do: Routes.page_url(Endpoint, :comment, uuid)
defp generate_url(uuid), do: url(~p"/comments/#{uuid}")
@spec put_tags(Ecto.Changeset.t(), map) :: Ecto.Changeset.t()
defp put_tags(changeset, %{"tags" => tags}),

View File

@@ -27,8 +27,7 @@ defmodule Mobilizon.Discussions.Discussion do
alias Mobilizon.Actors.Actor
alias Mobilizon.Discussions.Comment
alias Mobilizon.Discussions.Discussion.TitleSlug
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
use Mobilizon.Web, :verified_routes
import Mobilizon.Web.Gettext, only: [dgettext: 2]
@type t :: %__MODULE__{
@@ -101,5 +100,5 @@ defmodule Mobilizon.Discussions.Discussion do
@spec generate_url(String.t(), String.t()) :: String.t()
defp generate_url(preferred_username, slug),
do: Routes.page_url(Endpoint, :discussion, preferred_username, slug)
do: url(~p"/@:#{preferred_username}/c/#{slug}")
end

View File

@@ -32,8 +32,7 @@ defmodule Mobilizon.Events.Event do
alias Mobilizon.Medias.Media
alias Mobilizon.Storage.Repo
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
use Mobilizon.Web, :verified_routes
@type t :: %__MODULE__{
id: integer(),
@@ -140,7 +139,7 @@ defmodule Mobilizon.Events.Event do
@spec changeset(t | Ecto.Schema.t(), map) :: Changeset.t()
def changeset(%__MODULE__{} = event, attrs) do
attrs = Map.update(attrs, :uuid, Ecto.UUID.generate(), &(&1 || Ecto.UUID.generate()))
attrs = Map.update(attrs, :url, Routes.page_url(Endpoint, :event, attrs.uuid), & &1)
attrs = Map.update(attrs, :url, url(~p"/events/#{attrs.uuid}"), & &1)
event
|> cast(attrs, @attrs)

View File

@@ -27,8 +27,7 @@ defmodule Mobilizon.Posts.Post do
alias Mobilizon.Medias.Media
alias Mobilizon.Posts.Post.TitleSlug
alias Mobilizon.Posts.PostVisibility
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
use Mobilizon.Web, :verified_routes
import Mobilizon.Web.Gettext
@type t :: %__MODULE__{
@@ -128,7 +127,7 @@ defmodule Mobilizon.Posts.Post do
@spec generate_url(String.t()) :: String.t()
defp generate_url(id_and_slug) when is_binary(id_and_slug),
do: Routes.page_url(Endpoint, :post, id_and_slug)
do: url(~p"/p/#{id_and_slug}")
defp generate_url(_), do: nil