diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-03-25 17:01:45 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-03-25 17:01:45 +0300 |
commit | be5e2c4dbba63831ea6a0617556e686969b5080f (patch) | |
tree | 32af3104df1d88671ea1c2931fca1116bd617e59 /lib/pleroma/conversation | |
parent | 8f1d622b8dfaf6bf00d5f1bf6b988c12766b72ea (diff) | |
download | pleroma-be5e2c4dbba63831ea6a0617556e686969b5080f.tar.gz |
Applied relationships preloading to GET /api/v1/accounts/relationships. Refactoring (User.binary_id/1).
Diffstat (limited to 'lib/pleroma/conversation')
-rw-r--r-- | lib/pleroma/conversation/participation.ex | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex index 693825cf5..215265fc9 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -129,21 +129,18 @@ defmodule Pleroma.Conversation.Participation do end def restrict_recipients(query, user, %{"recipients" => user_ids}) do - user_ids = + user_binary_ids = [user.id | user_ids] |> Enum.uniq() - |> Enum.reduce([], fn user_id, acc -> - {:ok, user_id} = FlakeId.Ecto.CompatType.dump(user_id) - [user_id | acc] - end) + |> User.binary_id() conversation_subquery = __MODULE__ |> group_by([p], p.conversation_id) |> having( [p], - count(p.user_id) == ^length(user_ids) and - fragment("array_agg(?) @> ?", p.user_id, ^user_ids) + count(p.user_id) == ^length(user_binary_ids) and + fragment("array_agg(?) @> ?", p.user_id, ^user_binary_ids) ) |> select([p], %{id: p.conversation_id}) |