+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# 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