aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/activity_pub/utils.ex
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-08-15 14:06:27 +0000
committerlain <lain@soykaf.club>2019-08-15 14:06:27 +0000
commit9fb71ce7f44ec4824f9b7e2acbc89d0d16ad08bf (patch)
tree274ab728f3dbb7b95d870bf31d001aa773151685 /lib/pleroma/web/activity_pub/utils.ex
parent27b747546a7796de57e88f454b2c2810c7523f97 (diff)
parentbd5ad0af787e65bc05b7df64ef41c414900085af (diff)
downloadpleroma-9fb71ce7f44ec4824f9b7e2acbc89d0d16ad08bf.tar.gz
Merge branch 'cache-follow-state' into 'develop'
Cache follow state Closes #1180 See merge request pleroma/pleroma!1573
Diffstat (limited to 'lib/pleroma/web/activity_pub/utils.ex')
-rw-r--r--lib/pleroma/web/activity_pub/utils.ex9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex
index fc5305c58..1c3058658 100644
--- a/lib/pleroma/web/activity_pub/utils.ex
+++ b/lib/pleroma/web/activity_pub/utils.ex
@@ -374,6 +374,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do
[state, actor, object]
)
+ User.set_follow_state_cache(actor, object, state)
activity = Activity.get_by_id(activity.id)
{:ok, activity}
rescue
@@ -382,12 +383,16 @@ defmodule Pleroma.Web.ActivityPub.Utils do
end
end
- def update_follow_state(%Activity{} = activity, state) do
+ def update_follow_state(
+ %Activity{data: %{"actor" => actor, "object" => object}} = activity,
+ state
+ ) do
with new_data <-
activity.data
|> Map.put("state", state),
changeset <- Changeset.change(activity, data: new_data),
- {:ok, activity} <- Repo.update(changeset) do
+ {:ok, activity} <- Repo.update(changeset),
+ _ <- User.set_follow_state_cache(actor, object, state) do
{:ok, activity}
end
end