activitypub: controller: rework the way the relay actor is presented so the code...
authorAriadne Conill <ariadne@dereferenced.org>
Wed, 17 Jul 2019 16:22:57 +0000 (16:22 +0000)
committerAriadne Conill <ariadne@dereferenced.org>
Wed, 17 Jul 2019 16:33:08 +0000 (16:33 +0000)
lib/pleroma/web/activity_pub/activity_pub_controller.ex

index e2af4ad1a7167286ef0cc9574ae7c9936d5689ea..dc9ef066df5ab453afef1c45a963b5c73efebed7 100644 (file)
@@ -206,9 +206,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do
     json(conn, dgettext("errors", "error"))
   end
 
-  def relay(conn, _params) do
-    with %User{} = user <- Relay.get_actor(),
-         {:ok, user} <- User.ensure_keys_present(user) do
+  defp represent_service_actor(%User{} = user, conn) do
+    with {:ok, user} <- User.ensure_keys_present(user) do
       conn
       |> put_resp_header("content-type", "application/activity+json")
       |> json(UserView.render("user.json", %{user: user}))
@@ -217,6 +216,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do
     end
   end
 
+  defp represent_service_actor(nil, _), do: {:error, :not_found}
+
+  def relay(conn, _params) do
+    Relay.get_actor()
+    |> represent_service_actor(conn)
+  end
+
   def whoami(%{assigns: %{user: %User{} = user}} = conn, _params) do
     conn
     |> put_resp_header("content-type", "application/activity+json")