Merge branch 'develop' into activation-meta
[akkoma] / lib / pleroma / web / activity_pub / side_effects.ex
index de143b8f0a6a90b53cb44d815b4989da9ad79834..5cc2eb378d76a62a9a429ebe9d285f34dc318a62 100644 (file)
@@ -20,6 +20,21 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
 
   def handle(object, meta \\ [])
 
+  # Tasks this handles:
+  # - Unfollow and block
+  def handle(
+        %{data: %{"type" => "Block", "object" => blocked_user, "actor" => blocking_user}} =
+          object,
+        meta
+      ) do
+    with %User{} = blocker <- User.get_cached_by_ap_id(blocking_user),
+         %User{} = blocked <- User.get_cached_by_ap_id(blocked_user) do
+      User.block(blocker, blocked)
+    end
+
+    {:ok, object, meta}
+  end
+
   # Tasks this handles:
   # - Update the user
   #