activitypub: use Activity.normalize() in several places instead of using Activity...
authorWilliam Pitcock <nenolod@dereferenced.org>
Mon, 18 Jun 2018 21:21:03 +0000 (21:21 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Wed, 27 Jun 2018 13:08:12 +0000 (13:08 +0000)
lib/pleroma/web/activity_pub/activity_pub.ex
lib/pleroma/web/activity_pub/transmogrifier.ex

index 93219d76ab6e0cce29f93cefd2c25ebfcc658a15..464832a1ef28264e6e0d0ad9230a068595b83611 100644 (file)
@@ -30,7 +30,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
   end
 
   def insert(map, local \\ true) when is_map(map) do
-    with nil <- Activity.get_by_ap_id(map["id"]),
+    with nil <- Activity.normalize(map),
          map <- lazy_put_activity_defaults(map),
          :ok <- check_actor_is_active(map["actor"]),
          {:ok, map} <- MRF.filter(map),
index 8b5c85f423746f59b7d39c3dd3ba32314b5f9a99..9d7c64743a7b43571892b228700aa070115735c3 100644 (file)
@@ -460,14 +460,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
   # Mastodon Accept/Reject requires a non-normalized object containing the actor URIs,
   # because of course it does.
   def prepare_outgoing(%{"type" => "Accept"} = data) do
-    follow_activity_id =
-      if is_binary(data["object"]) do
-        data["object"]
-      else
-        data["object"]["id"]
-      end
-
-    with follow_activity <- Activity.get_by_ap_id(follow_activity_id) do
+    with follow_activity <- Activity.normalize(data["object"]) do
       object = %{
         "actor" => follow_activity.actor,
         "object" => follow_activity.data["object"],
@@ -485,14 +478,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
   end
 
   def prepare_outgoing(%{"type" => "Reject"} = data) do
-    follow_activity_id =
-      if is_binary(data["object"]) do
-        data["object"]
-      else
-        data["object"]["id"]
-      end
-
-    with follow_activity <- Activity.get_by_ap_id(follow_activity_id) do
+    with follow_activity <- Activity.normalize(data["object"]) do
       object = %{
         "actor" => follow_activity.actor,
         "object" => follow_activity.data["object"],