Conversations: Fetch users in one query.
This commit is contained in:
parent
d5330ed125
commit
970f71e222
|
@ -59,10 +59,10 @@ def mark_as_unread(participation) do
|
||||||
def for_user(user, params \\ %{}) do
|
def for_user(user, params \\ %{}) do
|
||||||
from(p in __MODULE__,
|
from(p in __MODULE__,
|
||||||
where: p.user_id == ^user.id,
|
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)
|
|> Pleroma.Pagination.fetch_paginated(params)
|
||||||
|> Repo.preload(conversation: [:users])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def for_user_with_last_activity_id(user, params \\ %{}) do
|
def for_user_with_last_activity_id(user, params \\ %{}) do
|
||||||
|
|
|
@ -72,8 +72,11 @@ test "gets all the participations for a user, ordered by updated at descending"
|
||||||
object2 = Pleroma.Object.normalize(activity_two)
|
object2 = Pleroma.Object.normalize(activity_two)
|
||||||
object3 = Pleroma.Object.normalize(activity_three)
|
object3 = Pleroma.Object.normalize(activity_three)
|
||||||
|
|
||||||
|
user = Repo.get(Pleroma.User, user.id)
|
||||||
|
|
||||||
assert participation_one.conversation.ap_id == object3.data["context"]
|
assert participation_one.conversation.ap_id == object3.data["context"]
|
||||||
assert participation_two.conversation.ap_id == object2.data["context"]
|
assert participation_two.conversation.ap_id == object2.data["context"]
|
||||||
|
assert participation_one.conversation.users == [user]
|
||||||
|
|
||||||
# Pagination
|
# Pagination
|
||||||
assert [participation_one] = Participation.for_user(user, %{"limit" => 1})
|
assert [participation_one] = Participation.for_user(user, %{"limit" => 1})
|
||||||
|
|
Loading…
Reference in New Issue