aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2018-03-03 18:37:40 +0100
committerlain <lain@soykaf.club>2018-03-03 18:38:40 +0100
commitd2ad99298e095f8c738efc95d0f8f077f8bfa23a (patch)
tree6dc981f0beb9758f44e153b5bd4335feae011d6f /lib
parent1377b2e569e91b4f51ba4715b343e1a8a7feb8ba (diff)
downloadpleroma-d2ad99298e095f8c738efc95d0f8f077f8bfa23a.tar.gz
Handle incoming deletes.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index f3e869f4d..54468b5f9 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -138,6 +138,21 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
end
end
+ # TODO: Make secure.
+ def handle_incoming(%{"type" => "Delete", "object" => object_id, "actor" => actor, "id" => id} = data) do
+ object_id = case object_id do
+ %{"id" => id} -> id
+ id -> id
+ end
+ with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),
+ {:ok, object} <- get_obj_helper(object_id) || ActivityPub.fetch_object_from_id(object_id),
+ {:ok, activity} <- ActivityPub.delete(object, false) do
+ {:ok, activity}
+ else
+ e -> :error
+ end
+ end
+
# TODO
# Accept
# Undo