From b224d7ffad8b0260fb5230aa07c20a0a538d9cb0 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Mon, 22 Jul 2024 20:34:30 +0530 Subject: [PATCH] Simplify get_conversation_by_user DB adapter code --- src/khoj/database/adapters/__init__.py | 32 +++++++------------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/src/khoj/database/adapters/__init__.py b/src/khoj/database/adapters/__init__.py index 0c0724ee..2dae40ed 100644 --- a/src/khoj/database/adapters/__init__.py +++ b/src/khoj/database/adapters/__init__.py @@ -680,34 +680,18 @@ class ConversationAdapters: async def aget_conversation_by_user( user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None, title: str = None ) -> Optional[Conversation]: + query = Conversation.objects.filter(user=user, client=client_application).prefetch_related("agent") + if conversation_id: - return ( - await Conversation.objects.filter(user=user, client=client_application, id=conversation_id) - .prefetch_related("agent") - .afirst() - ) + return await query.filter(id=conversation_id).afirst() elif title: - return ( - await Conversation.objects.filter(user=user, client=client_application, title=title) - .prefetch_related("agent") - .afirst() - ) - else: - conversation = ( - Conversation.objects.filter(user=user, client=client_application) - .prefetch_related("agent") - .order_by("-updated_at") - ) + return await query.filter(title=title).afirst() - if await conversation.aexists(): - return await conversation.prefetch_related("agent").afirst() + conversation = await query.order_by("-updated_at").afirst() - return await ( - Conversation.objects.filter(user=user, client=client_application) - .prefetch_related("agent") - .order_by("-updated_at") - .afirst() - ) or await Conversation.objects.prefetch_related("agent").acreate(user=user, client=client_application) + return conversation or await Conversation.objects.prefetch_related("agent").acreate( + user=user, client=client_application + ) @staticmethod async def adelete_conversation_by_user(