refactor: use Phoenix verified routes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Comment do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -78,11 +77,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Comment do
|
||||
end
|
||||
|
||||
defp event_url(activity) do
|
||||
Routes.page_url(
|
||||
Endpoint,
|
||||
:event,
|
||||
activity.subject_params["event_uuid"]
|
||||
)
|
||||
url(~p"/events/#{activity.subject_params["event_uuid"]}")
|
||||
end
|
||||
|
||||
defp event_comment_url(activity) do
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Conversation do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -61,11 +60,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Conversation do
|
||||
end
|
||||
|
||||
defp conversation_url(activity) do
|
||||
Routes.page_url(
|
||||
Endpoint,
|
||||
:conversation,
|
||||
activity.subject_params["conversation_id"]
|
||||
)
|
||||
url(~p"/conversations/#{activity.subject_params["conversation_id"]}")
|
||||
end
|
||||
|
||||
defp profile(activity), do: Actor.display_name_and_username(activity.author)
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Discussion do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -113,12 +112,8 @@ defmodule Mobilizon.Service.Activity.Renderer.Discussion do
|
||||
end
|
||||
|
||||
defp discussion_url(activity) do
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:discussion,
|
||||
Actor.preferred_username_and_domain(activity.group),
|
||||
activity.subject_params["discussion_slug"]
|
||||
)
|
||||
~p"/@#{Actor.preferred_username_and_domain(activity.group)}/c/#{activity.subject_params["discussion_slug"]}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
end
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Event do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -81,11 +80,8 @@ defmodule Mobilizon.Service.Activity.Renderer.Event do
|
||||
end
|
||||
|
||||
defp event_url(activity) do
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:event,
|
||||
activity.subject_params["event_uuid"]
|
||||
)
|
||||
~p"/events/#{activity.subject_params["event_uuid"]}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
end
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Group do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -30,8 +29,8 @@ defmodule Mobilizon.Service.Activity.Renderer.Group do
|
||||
end
|
||||
|
||||
defp group_url(activity) do
|
||||
Endpoint
|
||||
|> Routes.page_url(:actor, Actor.preferred_username_and_domain(activity.group))
|
||||
~p"/@#{Actor.preferred_username_and_domain(activity.group)}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
end
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Member do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -81,12 +80,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Member do
|
||||
|
||||
defp member_url(activity) do
|
||||
group_url =
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:actor,
|
||||
Actor.preferred_username_and_domain(activity.group)
|
||||
)
|
||||
|> URI.decode()
|
||||
~p"/@#{Actor.preferred_username_and_domain(activity.group)}" |> url() |> URI.decode()
|
||||
|
||||
"#{group_url}/settings/members"
|
||||
end
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Post do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -52,12 +51,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Post do
|
||||
end
|
||||
|
||||
defp post_url(activity) do
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:post,
|
||||
activity.subject_params["post_slug"]
|
||||
)
|
||||
|> URI.decode()
|
||||
URI.decode(~p"/p/#{activity.subject_params["post_slug"]}")
|
||||
end
|
||||
|
||||
defp profile(activity), do: Actor.display_name_and_username(activity.author)
|
||||
|
||||
@@ -5,8 +5,7 @@ defmodule Mobilizon.Service.Activity.Renderer.Resource do
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Activity.Renderer
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext, only: [dgettext: 3]
|
||||
|
||||
@behaviour Renderer
|
||||
@@ -73,8 +72,8 @@ defmodule Mobilizon.Service.Activity.Renderer.Resource do
|
||||
end
|
||||
|
||||
defp resource_url(activity) do
|
||||
Endpoint
|
||||
|> Routes.page_url(:resource, activity.subject_params["resource_uuid"])
|
||||
~p"/resource/#{activity.subject_params["resource_uuid"]}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
end
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ defmodule Mobilizon.Service.Auth.Applications do
|
||||
alias Mobilizon.Service.Auth.Authenticator
|
||||
alias Mobilizon.Users.User
|
||||
alias Mobilizon.Web.Auth.Guardian
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
require Logger
|
||||
|
||||
@app_access_tokens_ttl {8, :hour}
|
||||
@@ -260,8 +260,7 @@ defmodule Mobilizon.Service.Auth.Applications do
|
||||
with {:app, %Application{scope: app_scope} = application} <-
|
||||
{:app, Applications.get_application_by_client_id(client_id)},
|
||||
{device_code, user_code, verification_uri} <-
|
||||
{string_of_length(40), string_of_length(8),
|
||||
Routes.page_url(Mobilizon.Web.Endpoint, :auth_device)},
|
||||
{string_of_length(40), string_of_length(8), url(~p"/login/device")},
|
||||
{:scope_included, true} <- {:scope_included, request_scope_valid?(app_scope, scope)},
|
||||
{:ok, %ApplicationDeviceActivation{} = application_device_activation} <-
|
||||
Applications.create_application_device_activation(%{
|
||||
|
||||
@@ -15,7 +15,7 @@ defmodule Mobilizon.Service.Export.Feed do
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
|
||||
require Logger
|
||||
|
||||
@@ -104,10 +104,7 @@ defmodule Mobilizon.Service.Export.Feed do
|
||||
defp build_actor_feed(%Actor{} = actor, events, posts, public \\ true) do
|
||||
display_name = Actor.display_name(actor)
|
||||
|
||||
self_url =
|
||||
Endpoint
|
||||
|> Routes.feed_url(:actor, actor.preferred_username, "atom")
|
||||
|> URI.decode()
|
||||
self_url = ~p"/@#{actor.preferred_username}/feed/atom" |> url() |> URI.decode()
|
||||
|
||||
title =
|
||||
if public,
|
||||
@@ -215,7 +212,7 @@ defmodule Mobilizon.Service.Export.Feed do
|
||||
# Build an atom feed from actor and its public events
|
||||
@spec build_user_feed(list(Event.t()), User.t(), String.t()) :: String.t()
|
||||
defp build_user_feed(events, %User{email: email}, token) do
|
||||
self_url = Endpoint |> Routes.feed_url(:going, token, "atom") |> URI.decode()
|
||||
self_url = ~p"/events/going/#{token}/format" |> url() |> URI.decode()
|
||||
|
||||
# Title uses default instance language
|
||||
self_url
|
||||
|
||||
@@ -2,9 +2,8 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Actors.Actor do
|
||||
alias Phoenix.HTML
|
||||
alias Phoenix.HTML.Tag
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.JsonLD.ObjectView
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
|
||||
import Mobilizon.Service.Metadata.Utils,
|
||||
only: [process_description: 2, default_description: 1, escape_text: 1]
|
||||
@@ -25,13 +24,7 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Actors.Actor do
|
||||
Tag.tag(:meta, property: "og:title", content: actor_display_name_escaped(group)),
|
||||
Tag.tag(:meta,
|
||||
property: "og:url",
|
||||
content:
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:actor,
|
||||
Actor.preferred_username_and_domain(group)
|
||||
)
|
||||
|> URI.decode()
|
||||
content: ~p"/@#{Actor.preferred_username_and_domain(group)}" |> url() |> URI.decode()
|
||||
),
|
||||
Tag.tag(:meta, property: "og:description", content: group.summary),
|
||||
Tag.tag(:meta, property: "og:type", content: "profile"),
|
||||
@@ -91,20 +84,13 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Actors.Actor do
|
||||
rel: "alternate",
|
||||
type: "application/atom+xml",
|
||||
title: gettext("%{name}'s feed", name: actor_display_name_escaped(group)) |> HTML.raw(),
|
||||
href:
|
||||
Routes.feed_url(Endpoint, :actor, Actor.preferred_username_and_domain(group), :atom)
|
||||
href: url(~p"/@#{Actor.preferred_username_and_domain(group)}/feed/atom")
|
||||
),
|
||||
Tag.tag(:link,
|
||||
rel: "alternate",
|
||||
type: "text/calendar",
|
||||
title: gettext("%{name}'s feed", name: actor_display_name_escaped(group)) |> HTML.raw(),
|
||||
href:
|
||||
Routes.feed_url(
|
||||
Endpoint,
|
||||
:actor,
|
||||
Actor.preferred_username_and_domain(group),
|
||||
:ics
|
||||
)
|
||||
href: url(~p"/@#{Actor.preferred_username_and_domain(group)}/feed/ics")
|
||||
),
|
||||
Tag.tag(:link,
|
||||
rel: "alternate",
|
||||
|
||||
@@ -6,7 +6,7 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Events.Event do
|
||||
alias Mobilizon.Events.{Event, EventOptions}
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.JsonLD.ObjectView
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
|
||||
import Mobilizon.Service.Metadata.Utils,
|
||||
only: [
|
||||
@@ -56,11 +56,8 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Events.Event do
|
||||
"position" => 1,
|
||||
"name" => event.attributed_to |> Actor.display_name() |> escape_text(),
|
||||
"item" =>
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:actor,
|
||||
Actor.preferred_username_and_domain(event.attributed_to)
|
||||
)
|
||||
~p"/@#{Actor.preferred_username_and_domain(event.attributed_to)}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
},
|
||||
%{
|
||||
|
||||
@@ -9,7 +9,7 @@ defmodule Mobilizon.Service.Metadata.Instance do
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Service.Metadata.Utils
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
import Mobilizon.Web.Gettext
|
||||
|
||||
@doc """
|
||||
@@ -58,13 +58,13 @@ defmodule Mobilizon.Service.Metadata.Instance do
|
||||
rel: "alternate",
|
||||
type: "application/atom+xml",
|
||||
title: gettext("%{name}'s feed", name: Config.instance_name()) |> HTML.raw(),
|
||||
href: Routes.feed_url(Endpoint, :instance, :atom)
|
||||
href: url(~p"/feed/instance/atom")
|
||||
),
|
||||
Tag.tag(:link,
|
||||
rel: "alternate",
|
||||
type: "text/calendar",
|
||||
title: gettext("%{name}'s feed", name: Config.instance_name()) |> HTML.raw(),
|
||||
href: Routes.feed_url(Endpoint, :instance, :ics)
|
||||
href: url(~p"/feed/instance/ics")
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
@@ -4,9 +4,8 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Posts.Post do
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Medias.{File, Media}
|
||||
alias Mobilizon.Posts.Post
|
||||
alias Mobilizon.Web.Endpoint
|
||||
use Mobilizon.Web, :verified_routes
|
||||
alias Mobilizon.Web.JsonLD.ObjectView
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
|
||||
import Mobilizon.Service.Metadata.Utils,
|
||||
only: [process_description: 2, strip_tags: 1, escape_text: 1]
|
||||
@@ -35,11 +34,8 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Posts.Post do
|
||||
"position" => 1,
|
||||
"name" => post.attributed_to |> Actor.display_name() |> escape_text,
|
||||
"item" =>
|
||||
Endpoint
|
||||
|> Routes.page_url(
|
||||
:actor,
|
||||
Actor.preferred_username_and_domain(post.attributed_to)
|
||||
)
|
||||
~p"/@#{Actor.preferred_username_and_domain(post.attributed_to)}"
|
||||
|> url()
|
||||
|> URI.decode()
|
||||
},
|
||||
%{
|
||||
|
||||
@@ -6,14 +6,14 @@ defmodule Mobilizon.Service.SiteMap do
|
||||
alias Mobilizon.{Actors, Events, Posts}
|
||||
alias Mobilizon.Storage.Repo
|
||||
alias Mobilizon.Web.Endpoint
|
||||
alias Mobilizon.Web.Router.Helpers, as: Routes
|
||||
use Mobilizon.Web, :verified_routes
|
||||
|
||||
@default_static_frequency :monthly
|
||||
|
||||
@spec generate_sitemap :: {:ok, :ok}
|
||||
def generate_sitemap do
|
||||
static_routes = [
|
||||
{Routes.page_url(Endpoint, :index, []), :daily},
|
||||
{url(~p"/*path"), :daily},
|
||||
"#{Endpoint.url()}/search",
|
||||
"#{Endpoint.url()}/about/instance",
|
||||
"#{Endpoint.url()}/terms",
|
||||
|
||||
Reference in New Issue
Block a user