summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/ostatus/handlers/delete_handler.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/ostatus/handlers/delete_handler.ex')
-rw-r--r--lib/pleroma/web/ostatus/handlers/delete_handler.ex14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/pleroma/web/ostatus/handlers/delete_handler.ex b/lib/pleroma/web/ostatus/handlers/delete_handler.ex
new file mode 100644
index 000000000..2e5f9469b
--- /dev/null
+++ b/lib/pleroma/web/ostatus/handlers/delete_handler.ex
@@ -0,0 +1,14 @@
+defmodule Pleroma.Web.OStatus.DeleteHandler do
+ require Logger
+ alias Pleroma.Web.{XML, OStatus}
+ alias Pleroma.{Activity, Object, Repo}
+
+ def handle_delete(entry, doc \\ nil) do
+ with id <- XML.string_from_xpath("//id", entry),
+ object when not is_nil(object) <- Object.get_by_ap_id(id) do
+ Repo.delete(object)
+ Repo.delete_all(Activity.all_by_object_ap_id_q(id))
+ nil
+ end
+ end
+end