diff options
author | Maksim <parallel588@gmail.com> | 2019-09-04 17:31:14 +0000 |
---|---|---|
committer | Maksim <parallel588@gmail.com> | 2019-09-04 17:31:14 +0000 |
commit | 8306078de1abade082f932cda5b8d9297bdcdc80 (patch) | |
tree | a8f2baf2790d1e2c783b734650ac468cdc267798 | |
parent | a890451187f0b1507be96ccf144b18fdb8294dd8 (diff) | |
download | pleroma-8306078de1abade082f932cda5b8d9297bdcdc80.tar.gz |
Apply suggestion to lib/pleroma/web/activity_pub/utils.ex
-rw-r--r-- | lib/pleroma/web/activity_pub/utils.ex | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 0d87b9220..2de02f607 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -356,26 +356,19 @@ defmodule Pleroma.Web.ActivityPub.Utils do %Activity{data: %{"actor" => actor, "object" => object}} = activity, state ) do - query = - from(activity in Activity, - where: fragment("data->>'type' = 'Follow'"), - where: fragment("data->>'state' = 'pending'"), - where: fragment("data->>'actor' = ?", ^actor), - where: fragment("data->>'object' = ?", ^object), - update: [ - set: [ - data: fragment("jsonb_set(data, '{state}', ?)", ^state) - ] - ] - ) - - with {_, _} <- Repo.update_all(query, []), - {_, _} <- User.set_follow_state_cache(actor, object, state), - %Activity{} = activity <- Activity.get_by_id(activity.id) do - {:ok, activity} - else - e -> {:error, e} - end + "Follow" + |> Activity.Queries.by_type() + |> Activity.Queries.by_actor(actor) + |> Activity.Queries.by_object_id(object["id"]) + |> where(fragment("data->>'state' = 'pending'")) + |> update(set: [data: fragment("jsonb_set(data, '{state}', ?)", ^state)]) + |> Repo.update_all([]) + + User.set_follow_state_cache(actor, object, state) + + activity = Activity.get_by_id(activity.id) + + {:ok, activity} end def update_follow_state( |