mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-07 21:29:13 +00:00
Prefetch agents related database models
This commit is contained in:
@@ -556,14 +556,18 @@ class AgentAdapters:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def aget_readonly_agent_by_slug(agent_slug: str, user: KhojUser):
|
async def aget_readonly_agent_by_slug(agent_slug: str, user: KhojUser):
|
||||||
return await Agent.objects.filter(
|
return (
|
||||||
(Q(slug__iexact=agent_slug.lower()))
|
await Agent.objects.filter(
|
||||||
& (
|
(Q(slug__iexact=agent_slug.lower()))
|
||||||
Q(privacy_level=Agent.PrivacyLevel.PUBLIC)
|
& (
|
||||||
| Q(privacy_level=Agent.PrivacyLevel.PROTECTED)
|
Q(privacy_level=Agent.PrivacyLevel.PUBLIC)
|
||||||
| Q(creator=user)
|
| Q(privacy_level=Agent.PrivacyLevel.PROTECTED)
|
||||||
|
| Q(creator=user)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
).afirst()
|
.prefetch_related("creator", "chat_model", "fileobject_set")
|
||||||
|
.afirst()
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def adelete_agent_by_slug(agent_slug: str, user: KhojUser):
|
async def adelete_agent_by_slug(agent_slug: str, user: KhojUser):
|
||||||
@@ -579,15 +583,23 @@ class AgentAdapters:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def aget_agent_by_slug(agent_slug: str, user: KhojUser):
|
async def aget_agent_by_slug(agent_slug: str, user: KhojUser):
|
||||||
return await Agent.objects.filter(
|
return (
|
||||||
(Q(slug__iexact=agent_slug.lower())) & (Q(privacy_level=Agent.PrivacyLevel.PUBLIC) | Q(creator=user))
|
await Agent.objects.filter(
|
||||||
).afirst()
|
(Q(slug__iexact=agent_slug.lower())) & (Q(privacy_level=Agent.PrivacyLevel.PUBLIC) | Q(creator=user))
|
||||||
|
)
|
||||||
|
.prefetch_related("creator", "chat_model", "fileobject_set")
|
||||||
|
.afirst()
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def aget_agent_by_name(agent_name: str, user: KhojUser):
|
async def aget_agent_by_name(agent_name: str, user: KhojUser):
|
||||||
return await Agent.objects.filter(
|
return (
|
||||||
(Q(name__iexact=agent_name.lower())) & (Q(privacy_level=Agent.PrivacyLevel.PUBLIC) | Q(creator=user))
|
await Agent.objects.filter(
|
||||||
).afirst()
|
(Q(name__iexact=agent_name.lower())) & (Q(privacy_level=Agent.PrivacyLevel.PUBLIC) | Q(creator=user))
|
||||||
|
)
|
||||||
|
.prefetch_related("creator", "chat_model", "fileobject_set")
|
||||||
|
.afirst()
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_agent_by_slug(slug: str, user: KhojUser = None):
|
def get_agent_by_slug(slug: str, user: KhojUser = None):
|
||||||
|
|||||||
Reference in New Issue
Block a user