Pipeline: Unify embedded_object / object_data, move to validator.

This commit is contained in:
lain 2020-07-27 16:39:50 +02:00
commit 9e6f4694dd
5 changed files with 12 additions and 10 deletions

View file

@ -9,6 +9,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do
the system.
"""
alias Pleroma.Activity
alias Pleroma.EctoType.ActivityPub.ObjectValidators
alias Pleroma.Object
alias Pleroma.User
@ -71,6 +72,12 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do
|> UndoValidator.cast_and_validate()
|> Ecto.Changeset.apply_action(:insert) do
object = stringify_keys(object)
undone_object = Activity.get_by_ap_id(object["object"])
meta =
meta
|> Keyword.put(:object_data, undone_object.data)
{:ok, object, meta}
end
end

View file

@ -53,7 +53,7 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do
if !do_not_federate && local do
activity =
if object = Keyword.get(meta, :embedded_object) do
if object = Keyword.get(meta, :object_data) do
%{activity | data: Map.put(activity.data, "object", object)}
else
activity

View file

@ -174,10 +174,6 @@ 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