fix(chats): prevent duplicate saved messages entries in chat list
Some checks failed
CI / test (push) Failing after 1m57s
Some checks failed
CI / test (push) Failing after 1m57s
This commit is contained in:
@@ -60,7 +60,11 @@ def _user_chats_query(user_id: int, query: str | None = None) -> Select[tuple[Ch
|
||||
ChatUserSetting,
|
||||
(ChatUserSetting.chat_id == Chat.id) & (ChatUserSetting.user_id == user_id),
|
||||
)
|
||||
.where(ChatMember.user_id == user_id, func.coalesce(ChatUserSetting.archived, False).is_(False))
|
||||
.where(
|
||||
ChatMember.user_id == user_id,
|
||||
func.coalesce(ChatUserSetting.archived, False).is_(False),
|
||||
Chat.is_saved.is_(False),
|
||||
)
|
||||
)
|
||||
if query and query.strip():
|
||||
q = f"%{query.strip()}%"
|
||||
@@ -162,6 +166,7 @@ async def find_saved_chat_for_user(db: AsyncSession, *, user_id: int) -> Chat |
|
||||
select(Chat)
|
||||
.join(ChatMember, ChatMember.chat_id == Chat.id)
|
||||
.where(ChatMember.user_id == user_id, Chat.is_saved.is_(True))
|
||||
.order_by(Chat.id.asc())
|
||||
.limit(1)
|
||||
)
|
||||
result = await db.execute(stmt)
|
||||
|
||||
Reference in New Issue
Block a user