Do some transmogrifying for the output.
[akkoma] / lib / pleroma / web / activity_pub / activity_pub.ex
index 4848cc5421fd3142edba43f142027da6eda9d706..8e15fde4a810cf1373b92e255ceb271c1ee3103e 100644 (file)
@@ -1,5 +1,6 @@
 defmodule Pleroma.Web.ActivityPub.ActivityPub do
   alias Pleroma.{Activity, Repo, Object, Upload, User, Notification}
+  alias Pleroma.Web.ActivityPub.Transmogrifier
   import Ecto.Query
   import Pleroma.Web.ActivityPub.Utils
   require Logger
@@ -139,6 +140,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
   end
   defp restrict_tag(query, _), do: query
 
+  defp restrict_recipients(query, []), do: query
   defp restrict_recipients(query, recipients) do
     from activity in query,
      where: fragment("? && ?", ^recipients, activity.recipients)
@@ -241,15 +243,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
     end
   end
 
-  # TODO: Extract to own module, align as close to Mastodon format as possible.
-  def sanitize_outgoing_activity_data(data) do
-    data
-    |> Map.put("@context", "https://www.w3.org/ns/activitystreams")
-  end
-
   def publish(actor, activity) do
     remote_users = Pleroma.Web.Salmon.remote_users(activity)
-    data = sanitize_outgoing_activity_data(activity.data)
+    {:ok, data} = Transmogrifier.prepare_outgoing(activity.data)
     Enum.each remote_users, fn(user) ->
       if user.info["ap_enabled"] do
         inbox = user.info["source_data"]["inbox"]