aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim <parallel588@gmail.com>2019-09-04 17:31:14 +0000
committerMaksim <parallel588@gmail.com>2019-09-04 17:31:14 +0000
commit8306078de1abade082f932cda5b8d9297bdcdc80 (patch)
treea8f2baf2790d1e2c783b734650ac468cdc267798
parenta890451187f0b1507be96ccf144b18fdb8294dd8 (diff)
downloadpleroma-8306078de1abade082f932cda5b8d9297bdcdc80.tar.gz
Apply suggestion to lib/pleroma/web/activity_pub/utils.ex
-rw-r--r--lib/pleroma/web/activity_pub/utils.ex33
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(