Don't delete new delete activity...
authorRoger Braun <roger@rogerbraun.net>
Mon, 4 Sep 2017 18:47:43 +0000 (20:47 +0200)
committerRoger Braun <roger@rogerbraun.net>
Mon, 4 Sep 2017 18:47:43 +0000 (20:47 +0200)
lib/pleroma/web/activity_pub/activity_pub.ex
test/web/activity_pub/activity_pub_test.exs

index 146888c98eab2ea68ea866f32ad419cf5c5f7033..db1302738d7276176d297fcae3a9154df5ea9c99 100644 (file)
@@ -83,11 +83,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
       "object" => id,
       "to" => [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
     }
-    with {:ok, activity} <- insert(data, local),
+    with Repo.delete(object),
+         Repo.delete_all(Activity.all_non_create_by_object_ap_id_q(id)),
+         Repo.delete_all(Activity.all_by_object_ap_id_q(id)),
+         {:ok, activity} <- insert(data, local),
          :ok <- maybe_federate(activity) do
-      Repo.delete(object)
-      Repo.delete_all(Activity.all_non_create_by_object_ap_id_q(id))
-      Repo.delete_all(Activity.all_by_object_ap_id_q(id))
       {:ok, activity}
     end
   end
index 4388215f81677cf15825f3241414aeea9750def8..a088e97be36318c3bd30fccd5f0e6f88645bfe3c 100644 (file)
@@ -256,6 +256,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
       assert delete.data["actor"] == note.data["actor"]
       assert delete.data["object"] == note.data["object"]["id"]
 
+      assert Repo.get(Activity, delete.id) != nil
+
       assert Repo.get(Object, object.id) == nil
     end
   end