Refactor query to return only 1 message instead of 20

This commit is contained in:
Roman Chvanikov 2019-04-21 00:40:41 +07:00
commit 24073f829f
2 changed files with 33 additions and 33 deletions

View file

@ -65,22 +65,13 @@ defmodule Pleroma.Conversation.Participation do
def for_user_with_last_activity_id(user, params \\ %{}) do
for_user(user, params)
|> Repo.preload(:conversation)
|> Enum.map(fn participation ->
# TODO: Don't load all those activities, just get the most recent
# Involves splitting up the query.
activities =
ActivityPub.fetch_activities_for_context(participation.conversation.ap_id, %{
activity_id =
ActivityPub.fetch_latest_activity_id_for_context(participation.conversation.ap_id, %{
"user" => user,
"blocking_user" => user
})
activity_id =
case activities do
[activity | _] -> activity.id
_ -> nil
end
%{
participation
| last_activity_id: activity_id