Unify object representation.
authorlain <lain@soykaf.club>
Sat, 24 Feb 2018 19:16:41 +0000 (20:16 +0100)
committerlain <lain@soykaf.club>
Sat, 24 Feb 2018 19:16:41 +0000 (20:16 +0100)
lib/pleroma/web/activity_pub/transmogrifier.ex
lib/pleroma/web/activity_pub/views/object_view.ex

index 2e5ca70fd63465684aedae6faaba8a0c73448fb1..698cfa0a9d675c6533180e15a123331d43cf66cd 100644 (file)
@@ -122,18 +122,23 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     if object = Object.get_by_ap_id(id), do: {:ok, object}, else: nil
   end
 
-  @doc
-  """
-  internal -> Mastodon
-  """
-  def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
-    object = object
+  def prepare_object(object) do
+    object
     |> set_sensitive
     |> add_hashtags
     |> add_mention_tags
     |> add_attributed_to
     |> prepare_attachments
     |> set_conversation
+  end
+
+  @doc
+  """
+  internal -> Mastodon
+  """
+  def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
+    object = object
+    |> prepare_object
 
     data = data
     |> Map.put("object", object)
index c39f994546b2a83fd95244f1fefb99252a52726f..cc0b0556bcf3571b9e54d426d970ac756bbd0bf3 100644 (file)
@@ -1,5 +1,6 @@
 defmodule Pleroma.Web.ActivityPub.ObjectView do
   use Pleroma.Web, :view
+  alias Pleroma.Web.ActivityPub.Transmogrifier
 
   def render("object.json", %{object: object}) do
     base = %{
@@ -20,8 +21,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do
       ]
     }
 
-    additional = Map.take(object.data, ["id", "to", "cc", "actor", "content", "summary", "type"])
-    |> Map.put("attributedTo", object.data["actor"])
+    additional = Transmogrifier.prepare_object(object.data)
     Map.merge(base, additional)
   end
 end