From: lain Date: Fri, 7 Jun 2019 15:51:47 +0000 (+0200) Subject: Conversations: Fetch users in one query. X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=970f71e222136a3c01a38ffe6c1c44704828434b;p=akkoma Conversations: Fetch users in one query. --- 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})