CommonAPI: Use common pipeline for deletions.

This commit is contained in:
lain 2020-04-30 16:15:38 +02:00
parent c9bfa51ea9
commit fdd8e7f276
2 changed files with 6 additions and 4 deletions

View file

@ -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

View file

@ -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}