enh: archived chats modal

This commit is contained in:
Timothy Jaeryang Baek
2025-05-25 01:23:12 +04:00
parent 5db7d8acd1
commit 6e8ca96799
5 changed files with 153 additions and 50 deletions

View File

@@ -392,7 +392,18 @@ class ChatTable:
if query_key:
query = query.filter(Chat.title.ilike(f"%{query_key}%"))
query = query.order_by(Chat.updated_at.desc())
order_by = filter.get("order_by")
direction = filter.get("direction")
if order_by and direction and getattr(Chat, order_by):
if direction.lower() == "asc":
query = query.order_by(getattr(Chat, order_by).asc())
elif direction.lower() == "desc":
query = query.order_by(getattr(Chat, order_by).desc())
else:
raise ValueError("Invalid direction for ordering")
else:
query = query.order_by(Chat.updated_at.desc())
if skip:
query = query.offset(skip)

View File

@@ -269,6 +269,8 @@ async def get_all_user_chats_in_db(user=Depends(get_admin_user)):
async def get_archived_session_user_chat_list(
page: Optional[int] = None,
query: Optional[str] = None,
order_by: Optional[str] = None,
direction: Optional[str] = None,
user=Depends(get_verified_user),
):
if page is None:
@@ -277,13 +279,19 @@ async def get_archived_session_user_chat_list(
limit = 60
skip = (page - 1) * limit
filter = {}
if query:
filter["query"] = query
if order_by:
filter["order_by"] = order_by
if direction:
filter["direction"] = direction
chat_list = [
ChatTitleIdResponse(**chat.model_dump())
for chat in Chats.get_archived_chat_list_by_user_id(
user.id,
{
"query": query if query else None,
},
filter=filter,
skip=skip,
limit=limit,
)