aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/conversation
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2020-03-25 17:01:45 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2020-03-25 17:01:45 +0300
commitbe5e2c4dbba63831ea6a0617556e686969b5080f (patch)
tree32af3104df1d88671ea1c2931fca1116bd617e59 /lib/pleroma/conversation
parent8f1d622b8dfaf6bf00d5f1bf6b988c12766b72ea (diff)
downloadpleroma-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.ex11
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})