fix other DB calls in v2.library.db

This commit is contained in:
Reinier van der Leer
2025-01-13 13:26:49 +01:00
committed by SwiftyOS
parent 3bcd6df193
commit 04d7feea28

View File

@@ -106,7 +106,7 @@ async def update_agent_version_in_library(
Updates the agent version in the library
"""
try:
await prisma.models.LibraryAgent.prisma().update(
await prisma.models.LibraryAgent.prisma().update_many(
where={
"userId": user_id,
"agentId": agent_id,
@@ -140,7 +140,7 @@ async def update_library_agent(
Updates the library agent with the given fields
"""
try:
await prisma.models.LibraryAgent.prisma().update(
await prisma.models.LibraryAgent.prisma().update_many(
where={"id": library_agent_id, "userId": user_id},
data=prisma.types.LibraryAgentUpdateInput(
useGraphIsActiveVersion=auto_update_version,
@@ -278,9 +278,9 @@ async def get_preset(
) -> backend.server.v2.library.model.LibraryAgentPreset | None:
try:
preset = await prisma.models.AgentPreset.prisma().find_unique(
where={"id": preset_id, "userId": user_id}, include={"InputPresets": True}
where={"id": preset_id}, include={"InputPresets": True}
)
if not preset:
if not preset or preset.userId != user_id:
return None
return backend.server.v2.library.model.LibraryAgentPreset.from_db(preset)
except prisma.errors.PrismaError as e:
@@ -296,14 +296,29 @@ async def create_or_update_preset(
preset_id: str | None = None,
) -> backend.server.v2.library.model.LibraryAgentPreset:
try:
logger.info("DB Creating Preset with inputs: %s", preset.inputs)
new_preset = await prisma.models.AgentPreset.prisma().upsert(
where={
"id": preset_id if preset_id else "",
},
data={
"create": {
if preset_id:
# Update existing preset
new_preset = await prisma.models.AgentPreset.prisma().update(
where={"id": preset_id},
data={
"name": preset.name,
"description": preset.description,
"isActive": preset.is_active,
"InputPresets": {
"create": [
{"name": name, "data": json.dumps(data)}
for name, data in preset.inputs.items()
]
},
},
include={"InputPresets": True},
)
if not new_preset:
raise ValueError(f"AgentPreset #{preset_id} not found")
else:
# Create new preset
new_preset = await prisma.models.AgentPreset.prisma().create(
data={
"userId": user_id,
"name": preset.name,
"description": preset.description,
@@ -317,13 +332,8 @@ async def create_or_update_preset(
]
},
},
"update": {
"name": preset.name,
"description": preset.description,
"isActive": preset.is_active,
},
},
)
include={"InputPresets": True},
)
return backend.server.v2.library.model.LibraryAgentPreset.from_db(new_preset)
except prisma.errors.PrismaError as e:
logger.error("Database error creating preset: %s", e)
@@ -334,7 +344,7 @@ async def create_or_update_preset(
async def delete_preset(user_id: str, preset_id: str) -> None:
try:
await prisma.models.AgentPreset.prisma().update(
await prisma.models.AgentPreset.prisma().update_many(
where={"id": preset_id, "userId": user_id},
data={"isDeleted": True},
)