Browse Source

Side Effects: On undoing, put information about the undone object.

frontends/logic-flow
Lain Soykaf 4 years ago
parent
commit
3d13fb05f8
2 changed files with 11 additions and 2 deletions
  1. +4
    -0
      lib/pleroma/web/activity_pub/side_effects.ex
  2. +7
    -2
      test/web/activity_pub/side_effects_test.exs

+ 4
- 0
lib/pleroma/web/activity_pub/side_effects.ex View File

@@ -174,6 +174,10 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
def handle(%{data: %{"type" => "Undo", "object" => undone_object}} = object, meta) do
with undone_object <- Activity.get_by_ap_id(undone_object),
:ok <- handle_undoing(undone_object) do
meta =
meta
|> Keyword.put(:embedded_object, undone_object.data)

{:ok, object, meta}
end
end


+ 7
- 2
test/web/activity_pub/side_effects_test.exs View File

@@ -312,8 +312,13 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
}
end

test "deletes the original block", %{block_undo: block_undo, block: block} do
{:ok, _block_undo, _} = SideEffects.handle(block_undo)
test "deletes the original block, but sets `embedded_object`", %{
block_undo: block_undo,
block: block
} do
{:ok, _block_undo, meta} = SideEffects.handle(block_undo)

assert meta[:embedded_object] == block.data
refute Activity.get_by_id(block.id)
end



Loading…
Cancel
Save