summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-04-22 18:40:53 +0200
committerlain <lain@soykaf.club>2020-04-22 18:40:53 +0200
commite62173dfc8b739508345b7ab97477ae04fcdb457 (patch)
treeccdd932fd8e4bf0c74b2bbc2041f3218f6b5c0e7 /lib
parent1cd38dfffa88384284a8ae0be39f52f25c544936 (diff)
downloadpleroma-e62173dfc8b739508345b7ab97477ae04fcdb457.tar.gz
pleroma-e62173dfc8b739508345b7ab97477ae04fcdb457.zip
SideEffects: Run in transaction.
This fixes race conditions.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/side_effects.ex11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex
index 6a8f1af96..a0f71fd88 100644
--- a/lib/pleroma/web/activity_pub/side_effects.ex
+++ b/lib/pleroma/web/activity_pub/side_effects.ex
@@ -15,12 +15,15 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
# - Add like to object
# - Set up notification
def handle(%{data: %{"type" => "Like"}} = object, meta) do
- liked_object = Object.get_by_ap_id(object.data["object"])
- Utils.add_like_to_object(object, liked_object)
+ Pleroma.Repo.transaction(fn ->
+ liked_object = Object.get_by_ap_id(object.data["object"])
+ Utils.add_like_to_object(object, liked_object)
- Notification.create_notifications(object)
+ Notification.create_notifications(object)
- {:ok, object, meta}
+ {:ok, object, meta}
+ end)
+ |> (fn {:ok, res} -> res end).()
end
# Nothing to do