aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex2
-rw-r--r--lib/pleroma/web/activity_pub/utils.ex12
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index b11d3221f..dcf670afb 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -57,7 +57,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
map <- lazy_put_activity_defaults(map),
:ok <- check_actor_is_active(map["actor"]),
{:ok, map} <- MRF.filter(map),
- :ok <- insert_full_object(map) do
+ {:ok, map} <- insert_full_object(map) do
{recipients, _, _} = get_recipients(map)
{:ok, activity} =
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex
index 549148989..bc5b98f1a 100644
--- a/lib/pleroma/web/activity_pub/utils.ex
+++ b/lib/pleroma/web/activity_pub/utils.ex
@@ -180,14 +180,18 @@ defmodule Pleroma.Web.ActivityPub.Utils do
@doc """
Inserts a full object if it is contained in an activity.
"""
- def insert_full_object(%{"object" => %{"type" => type} = object_data})
+ def insert_full_object(%{"object" => %{"type" => type} = object_data} = map)
when is_map(object_data) and type in @supported_object_types do
- with {:ok, _} <- Object.create(object_data) do
- :ok
+ with {:ok, object} <- Object.create(object_data) do
+ map =
+ map
+ |> Map.put("object", object.data["id"])
+
+ {:ok, map}
end
end
- def insert_full_object(_), do: :ok
+ def insert_full_object(map), do: {:ok, map}
def update_object_in_activities(%{data: %{"id" => id}} = object) do
# TODO