summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/ostatus/handlers/delete_handler.ex
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-08-01 17:05:07 +0200
committerRoger Braun <roger@rogerbraun.net>2017-08-01 17:05:07 +0200
commitf226f46a097b6b87a87ce1ead07383e8f83ad8ea (patch)
treea40146cb739690124fe44397dda6953129649cb5 /lib/pleroma/web/ostatus/handlers/delete_handler.ex
parent558ab6e74e631842e39002dffdb99a2867b5acbd (diff)
downloadpleroma-f226f46a097b6b87a87ce1ead07383e8f83ad8ea.tar.gz
pleroma-f226f46a097b6b87a87ce1ead07383e8f83ad8ea.zip
Add basic incoming deletions.
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