Handle Undo activites containing an Announce

This commit is contained in:
Francis Dinh 2018-05-08 23:50:19 -04:00
parent 4d5ec883b7
commit e55f69a676

View File

@ -220,9 +220,27 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
end
end
def handle_incoming(
%{
"type" => "Undo",
"object" => %{"type" => "Announce", "id" => object_id},
"actor" => actor,
"id" => id
} = data
) do
with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),
{:ok, object} <-
get_obj_helper(object_id) || ActivityPub.fetch_object_from_id(object_id),
{:ok, activity} <- ActivityPub.unannounce(object, false) do
{:ok, activity}
else
e -> :error
end
end
# TODO
# Accept
# Undo
# Undo for non-Announce
def handle_incoming(_), do: :error