Simplify PageController
This commit is contained in:
@@ -16,74 +16,6 @@ defmodule MobilizonWeb.ActivityPubController do
|
||||
|
||||
action_fallback(:errors)
|
||||
|
||||
@doc """
|
||||
Renders an Actor ActivityPub's representation
|
||||
"""
|
||||
@spec actor(Plug.Conn.t(), String.t()) :: Plug.Conn.t()
|
||||
def actor(conn, %{"name" => name}) do
|
||||
with {status, %Actor{} = actor} when status in [:ok, :commit] <-
|
||||
Actors.get_cached_local_actor_by_name(name) do
|
||||
conn
|
||||
|> put_resp_header("content-type", "application/activity+json")
|
||||
|> json(ActorView.render("actor.json", %{actor: actor}))
|
||||
else
|
||||
{:ignore, _} ->
|
||||
{:error, :not_found}
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Renders an Event ActivityPub's representation
|
||||
"""
|
||||
@spec event(Plug.Conn.t(), map()) :: Plug.Conn.t()
|
||||
def event(conn, %{"uuid" => uuid}) do
|
||||
with {status, %Event{} = event} when status in [:ok, :commit] <-
|
||||
Events.get_cached_event_full_by_uuid(uuid),
|
||||
true <- event.visibility in [:public, :unlisted] do
|
||||
conn
|
||||
|> put_resp_header("content-type", "application/activity+json")
|
||||
|> json(
|
||||
ObjectView.render(
|
||||
"event.json",
|
||||
%{
|
||||
event:
|
||||
event
|
||||
|> Utils.make_event_data()
|
||||
}
|
||||
)
|
||||
)
|
||||
else
|
||||
{:ignore, _} ->
|
||||
{:error, :not_found}
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Renders a Comment ActivityPub's representation
|
||||
"""
|
||||
@spec comment(Plug.Conn.t(), map()) :: Plug.Conn.t()
|
||||
def comment(conn, %{"uuid" => uuid}) do
|
||||
with {status, %Comment{} = comment} when status in [:ok, :commit] <-
|
||||
Events.get_cached_comment_full_by_uuid(uuid),
|
||||
true <- comment.visibility in [:public, :unlisted] do
|
||||
conn
|
||||
|> put_resp_header("content-type", "application/activity+json")
|
||||
|> json(
|
||||
ObjectView.render(
|
||||
"comment.json",
|
||||
%{
|
||||
comment:
|
||||
comment
|
||||
|> Utils.make_comment_data()
|
||||
}
|
||||
)
|
||||
)
|
||||
else
|
||||
_ ->
|
||||
{:error, :not_found}
|
||||
end
|
||||
end
|
||||
|
||||
def following(conn, %{"name" => name, "page" => page}) do
|
||||
with {page, ""} = Integer.parse(page),
|
||||
%Actor{} = actor <- Actors.get_local_actor_by_name_with_everything(name) do
|
||||
|
||||
Reference in New Issue
Block a user