forked from AkkomaGang/akkoma
CommonAPI: Use common pipeline for deletions.
This commit is contained in:
parent
c9bfa51ea9
commit
fdd8e7f276
2 changed files with 6 additions and 4 deletions
|
@ -30,7 +30,7 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do
|
|||
end
|
||||
|
||||
# Tasks this handles:
|
||||
# - Delete create activity
|
||||
# - Delete and unpins the create activity
|
||||
# - Replace object with Tombstone
|
||||
# - Set up notification
|
||||
def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, meta) do
|
||||
|
@ -40,7 +40,9 @@ def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object,
|
|||
result =
|
||||
case deleted_object do
|
||||
%Object{} ->
|
||||
with {:ok, _, _} <- Object.delete(deleted_object) do
|
||||
with {:ok, _, activity} <- Object.delete(deleted_object),
|
||||
%User{} = user <- User.get_cached_by_ap_id(deleted_object.data["actor"]) do
|
||||
User.remove_pinnned_activity(user, activity)
|
||||
:ok
|
||||
end
|
||||
|
||||
|
|
|
@ -77,8 +77,8 @@ def delete(activity_id, user) do
|
|||
{:find_activity, Activity.get_by_id_with_object(activity_id)},
|
||||
%Object{} = object <- Object.normalize(activity),
|
||||
true <- User.superuser?(user) || user.ap_id == object.data["actor"],
|
||||
{:ok, _} <- unpin(activity_id, user),
|
||||
{:ok, delete} <- ActivityPub.delete(object) do
|
||||
{:ok, delete_data, _} <- Builder.delete(user, object.data["id"]),
|
||||
{:ok, delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do
|
||||
{:ok, delete}
|
||||
else
|
||||
{:find_activity, _} -> {:error, :not_found}
|
||||
|
|
Loading…
Reference in a new issue