diff options
author | lain <lain@soykaf.club> | 2020-05-08 11:30:31 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-05-08 11:30:31 +0200 |
commit | 6acbe45eb211286e747143f6bd6edaa5c2126657 (patch) | |
tree | b98131bfe6ea5fb695c190c9b66703734c2dd655 /lib | |
parent | ef55d240540ed9fbac76248c60bdb23f82c3f36e (diff) | |
download | pleroma-6acbe45eb211286e747143f6bd6edaa5c2126657.tar.gz |
Builder: Extract common features of likes and reactions.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/builder.ex | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index f6544d3f5..922a444a9 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -12,7 +12,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do @spec emoji_react(User.t(), Object.t(), String.t()) :: {:ok, map(), keyword()} def emoji_react(actor, object, emoji) do - with {:ok, data, meta} <- like(actor, object) do + with {:ok, data, meta} <- object_action(actor, object) do data = data |> Map.put("content", emoji) @@ -64,6 +64,17 @@ defmodule Pleroma.Web.ActivityPub.Builder do @spec like(User.t(), Object.t()) :: {:ok, map(), keyword()} def like(actor, object) do + with {:ok, data, meta} <- object_action(actor, object) do + data = + data + |> Map.put("type", "Like") + + {:ok, data, meta} + end + end + + @spec object_action(User.t(), Object.t()) :: {:ok, map(), keyword()} + defp object_action(actor, object) do object_actor = User.get_cached_by_ap_id(object.data["actor"]) # Address the actor of the object, and our actor's follower collection if the post is public. @@ -85,7 +96,6 @@ defmodule Pleroma.Web.ActivityPub.Builder do %{ "id" => Utils.generate_activity_id(), "actor" => actor.ap_id, - "type" => "Like", "object" => object.data["id"], "to" => to, "cc" => cc, |