X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fostatus%2Fhandlers%2Fdelete_handler.ex;h=b2f9f39463deab9d9324af6bd9995df55f9a1fcf;hb=34fc0dca2e879bcbb73acc80fdc72678411d0ebf;hp=f54a037a0ef3cdf56e5ff9b70b7f8c40b76806fc;hpb=552cfdbe11193baf019fc97cc56356882cf60bc0;p=akkoma diff --git a/lib/pleroma/web/ostatus/handlers/delete_handler.ex b/lib/pleroma/web/ostatus/handlers/delete_handler.ex index f54a037a0..b2f9f3946 100644 --- a/lib/pleroma/web/ostatus/handlers/delete_handler.ex +++ b/lib/pleroma/web/ostatus/handlers/delete_handler.ex @@ -1,15 +1,18 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Web.OStatus.DeleteHandler do require Logger - alias Pleroma.Web.{XML, OStatus} - alias Pleroma.{Activity, Object, Repo} + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.XML - def handle_delete(entry, doc \\ nil) do + 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_non_create_by_object_ap_id_q(id)) - Repo.delete_all(Activity.all_by_object_ap_id_q(id)) - nil + %Object{} = object <- Object.normalize(id), + {:ok, delete} <- ActivityPub.delete(object, false) do + delete end end end