ActivityPub: Handle incoming announces.

This commit is contained in:
lain 2018-02-17 21:57:31 +01:00
commit 81ea359a7c
2 changed files with 21 additions and 0 deletions

View file

@ -73,6 +73,16 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
end
end
def handle_incoming(%{"type" => "Announce", "object" => object_id, "actor" => actor, "id" => id} = data) do
with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),
{:ok, object} <- ActivityPub.fetch_object_from_id(object_id),
{:ok, activity, object} <- ActivityPub.announce(actor, object, id, false) do
{:ok, activity}
else
_e -> :error
end
end
# TODO
# Accept
# Undo