From 970f71e222136a3c01a38ffe6c1c44704828434b Mon Sep 17 00:00:00 2001
From: lain <lain@soykaf.club>
Date: Fri, 7 Jun 2019 17:51:47 +0200
Subject: [PATCH] Conversations: Fetch users in one query.

---
 lib/pleroma/conversation/participation.ex | 4 ++--
 test/conversation/participation_test.exs  | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex
index 2c13c4b40..5883e4183 100644
--- a/lib/pleroma/conversation/participation.ex
+++ b/lib/pleroma/conversation/participation.ex
@@ -59,10 +59,10 @@ defmodule Pleroma.Conversation.Participation do
   def for_user(user, params \\ %{}) do
     from(p in __MODULE__,
       where: p.user_id == ^user.id,
-      order_by: [desc: p.updated_at]
+      order_by: [desc: p.updated_at],
+      preload: [conversation: [:users]]
     )
     |> Pleroma.Pagination.fetch_paginated(params)
-    |> Repo.preload(conversation: [:users])
   end
 
   def for_user_with_last_activity_id(user, params \\ %{}) do
diff --git a/test/conversation/participation_test.exs b/test/conversation/participation_test.exs
index 0e60bfca5..2a03e5d67 100644
--- a/test/conversation/participation_test.exs
+++ b/test/conversation/participation_test.exs
@@ -72,8 +72,11 @@ defmodule Pleroma.Conversation.ParticipationTest do
     object2 = Pleroma.Object.normalize(activity_two)
     object3 = Pleroma.Object.normalize(activity_three)
 
+    user = Repo.get(Pleroma.User, user.id)
+
     assert participation_one.conversation.ap_id == object3.data["context"]
     assert participation_two.conversation.ap_id == object2.data["context"]
+    assert participation_one.conversation.users == [user]
 
     # Pagination
     assert [participation_one] = Participation.for_user(user, %{"limit" => 1})