Compare commits

...

1 Commits

Author SHA1 Message Date
lain d3552636ce SideEffects: Don't delete a deleted object twice. 2020-10-12 15:49:33 +02:00
2 changed files with 12 additions and 0 deletions

View File

@ -253,6 +253,9 @@ def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object,
result =
case deleted_object do
%Object{data: %{"type" => "Tombstone"}} ->
:ok
%Object{} ->
with {:ok, deleted_object, activity} <- Object.delete(deleted_object),
{_, actor} when is_binary(actor) <- {:actor, deleted_object.data["actor"]},

View File

@ -238,6 +238,15 @@ test "it logs issues with objects deletion", %{
{:error, :no_object_actor} = SideEffects.handle(delete)
end) =~ "object doesn't have an actor"
end
test "it works with double deletions", %{
delete: delete,
object: object
} do
assert {:ok, activity, _} = SideEffects.handle(delete)
Object.invalid_object_cache(object)
assert {:ok, ^activity, _} = SideEffects.handle(delete)
end
end
describe "EmojiReact objects" do