aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-09-30 16:25:45 +0000
committerkaniini <ariadne@dereferenced.org>2019-09-30 16:25:45 +0000
commit703deb66d9346e0c8a160ec6c138b3b53b5183b6 (patch)
tree29445d77eba50057ae768ca08c7fa02a2ea98072 /lib
parent7c9b023a918c84b60ae6547289a083c671a3659b (diff)
parentdae744478e7a5b789f2fb541b47eea558a0f2d53 (diff)
downloadpleroma-703deb66d9346e0c8a160ec6c138b3b53b5183b6.tar.gz
Merge branch 'compact-undos' into 'develop'
Transmogrifier: Handle compact objects in undos. See merge request pleroma/pleroma!1752
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 63877248a..3ca2e8773 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -753,6 +753,24 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
end
end
+ # For Undos that don't have the complete object attached, try to find it in our database.
+ def handle_incoming(
+ %{
+ "type" => "Undo",
+ "object" => object
+ } = activity,
+ options
+ )
+ when is_binary(object) do
+ with %Activity{data: data} <- Activity.get_by_ap_id(object) do
+ activity
+ |> Map.put("object", data)
+ |> handle_incoming(options)
+ else
+ _e -> :error
+ end
+ end
+
def handle_incoming(_, _), do: :error
@spec get_obj_helper(String.t(), Keyword.t()) :: {:ok, Object.t()} | nil