diff options
author | lain <lain@soykaf.club> | 2019-08-14 17:01:11 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-08-14 17:01:11 +0200 |
commit | d3af9e19edb32e04d101e50ae2868ba6f66cbed9 (patch) | |
tree | b5f01a8a20af32bfb46928201097c19ce77bfa8f /lib/pleroma/conversation | |
parent | f73212b2a36deef631716f3c8a80d7da11cec759 (diff) | |
download | pleroma-d3af9e19edb32e04d101e50ae2868ba6f66cbed9.tar.gz |
Conversations: Load relations in one query.
Diffstat (limited to 'lib/pleroma/conversation')
-rw-r--r-- | lib/pleroma/conversation/participation.ex | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex index d17b6f7c5..ea5b9fe17 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -94,10 +94,20 @@ defmodule Pleroma.Conversation.Participation do |> Enum.filter(& &1.last_activity_id) end - def get(nil), do: nil + def get(_, _ \\ []) + def get(nil, _), do: nil + + def get(id, params) do + query = + if preload = params[:preload] do + from(p in __MODULE__, + preload: ^preload + ) + else + __MODULE__ + end - def get(id) do - Repo.get(__MODULE__, id) + Repo.get(query, id) end def set_recipients(participation, user_ids) do |