diff --git a/backend/apps/web/models/chats.py b/backend/apps/web/models/chats.py index a2ea7becc..c83f26a9c 100644 --- a/backend/apps/web/models/chats.py +++ b/backend/apps/web/models/chats.py @@ -191,7 +191,7 @@ class ChatTable: except: return None - def get_archived_chat_lists_by_user_id( + def get_archived_chat_list_by_user_id( self, user_id: str, skip: int = 0, limit: int = 50 ) -> List[ChatModel]: return [ @@ -204,7 +204,7 @@ class ChatTable: # .offset(skip) ] - def get_chat_lists_by_user_id( + def get_chat_list_by_user_id( self, user_id: str, skip: int = 0, limit: int = 50 ) -> List[ChatModel]: return [ @@ -217,7 +217,7 @@ class ChatTable: # .offset(skip) ] - def get_chat_lists_by_chat_ids( + def get_chat_list_by_chat_ids( self, chat_ids: List[str], skip: int = 0, limit: int = 50 ) -> List[ChatModel]: return [ @@ -228,20 +228,6 @@ class ChatTable: .order_by(Chat.updated_at.desc()) ] - def get_all_chats(self) -> List[ChatModel]: - return [ - ChatModel(**model_to_dict(chat)) - for chat in Chat.select().order_by(Chat.updated_at.desc()) - ] - - def get_all_chats_by_user_id(self, user_id: str) -> List[ChatModel]: - return [ - ChatModel(**model_to_dict(chat)) - for chat in Chat.select() - .where(Chat.user_id == user_id) - .order_by(Chat.updated_at.desc()) - ] - def get_chat_by_id(self, id: str) -> Optional[ChatModel]: try: chat = Chat.get(Chat.id == id) @@ -271,7 +257,17 @@ class ChatTable: def get_chats(self, skip: int = 0, limit: int = 50) -> List[ChatModel]: return [ ChatModel(**model_to_dict(chat)) - for chat in Chat.select().limit(limit).offset(skip) + for chat in Chat.select().order_by(Chat.updated_at.desc()) + # .limit(limit).offset(skip) + ] + + def get_chats_by_user_id(self, user_id: str) -> List[ChatModel]: + return [ + ChatModel(**model_to_dict(chat)) + for chat in Chat.select() + .where(Chat.user_id == user_id) + .order_by(Chat.updated_at.desc()) + # .limit(limit).offset(skip) ] def delete_chat_by_id_and_user_id(self, id: str, user_id: str) -> bool: diff --git a/backend/apps/web/routers/chats.py b/backend/apps/web/routers/chats.py index bbe3d84b9..bedb52d89 100644 --- a/backend/apps/web/routers/chats.py +++ b/backend/apps/web/routers/chats.py @@ -36,15 +36,28 @@ log.setLevel(SRC_LOG_LEVELS["MODELS"]) router = APIRouter() ############################ -# GetChats +# GetChatList ############################ @router.get("/", response_model=List[ChatTitleIdResponse]) -async def get_user_chats( +@router.get("/list", response_model=List[ChatTitleIdResponse]) +async def get_session_user_chat_list( user=Depends(get_current_user), skip: int = 0, limit: int = 50 ): - return Chats.get_chat_lists_by_user_id(user.id, skip, limit) + return Chats.get_chat_list_by_user_id(user.id, skip, limit) + + +############################ +# GetUserChatList +############################ + + +@router.get("/list/user/{user_id}", response_model=List[ChatTitleIdResponse]) +async def get_user_chat_list_by_user_id( + user_id: str, user=Depends(get_admin_user), skip: int = 0, limit: int = 50 +): + return Chats.get_chat_list_by_user_id(user_id, skip, limit) ############################ @@ -53,22 +66,22 @@ async def get_user_chats( @router.get("/archived", response_model=List[ChatTitleIdResponse]) -async def get_archived_user_chats( +async def get_archived_session_user_chat_list( user=Depends(get_current_user), skip: int = 0, limit: int = 50 ): - return Chats.get_archived_chat_lists_by_user_id(user.id, skip, limit) + return Chats.get_archived_chat_list_by_user_id(user.id, skip, limit) ############################ -# GetAllChats +# GetChats ############################ @router.get("/all", response_model=List[ChatResponse]) -async def get_all_user_chats(user=Depends(get_current_user)): +async def get_user_chats(user=Depends(get_current_user)): return [ ChatResponse(**{**chat.model_dump(), "chat": json.loads(chat.chat)}) - for chat in Chats.get_all_chats_by_user_id(user.id) + for chat in Chats.get_chats_by_user_id(user.id) ] @@ -86,7 +99,7 @@ async def get_all_user_chats_in_db(user=Depends(get_admin_user)): ) return [ ChatResponse(**{**chat.model_dump(), "chat": json.loads(chat.chat)}) - for chat in Chats.get_all_chats() + for chat in Chats.get_chats() ] @@ -138,7 +151,7 @@ async def get_user_chats_by_tag_name( for chat_id_tag in Tags.get_chat_ids_by_tag_name_and_user_id(tag_name, user.id) ] - chats = Chats.get_chat_lists_by_chat_ids(chat_ids, skip, limit) + chats = Chats.get_chat_list_by_chat_ids(chat_ids, skip, limit) if len(chats) == 0: Tags.delete_tag_by_tag_name_and_user_id(tag_name, user.id)