ChatController: Add last_read_id option to mark_as_read.

This commit is contained in:
lain 2020-06-07 15:38:33 +02:00
commit 801e668a97
4 changed files with 58 additions and 7 deletions

View file

@ -98,12 +98,20 @@ defmodule Pleroma.Chat.MessageReference do
|> Repo.update()
end
def set_all_seen_for_chat(chat) do
chat
|> for_chat_query()
|> exclude(:order_by)
|> exclude(:preload)
|> where([cmr], cmr.unread == true)
def set_all_seen_for_chat(chat, last_read_id \\ nil) do
query =
chat
|> for_chat_query()
|> exclude(:order_by)
|> exclude(:preload)
|> where([cmr], cmr.unread == true)
if last_read_id do
query
|> where([cmr], cmr.id <= ^last_read_id)
else
query
end
|> Repo.update_all(set: [unread: false])
end
end