fix creation and test cleanup of (library) agents

pwuts/open-2314-fix-up-and-re-introduce-library-v2-back-end-work
Reinier van der Leer 2025-01-16 18:48:28 +01:00
parent a8ac41090e
commit 46473f5847
No known key found for this signature in database
GPG Key ID: BEB9E26CB6F21336
3 changed files with 27 additions and 7 deletions

View File

@ -17,6 +17,7 @@ import backend.data.db
import backend.data.graph
import backend.data.user
import backend.server.routers.v1
import backend.server.v2.library.db
import backend.server.v2.library.model
import backend.server.v2.library.routes
import backend.server.v2.store.model
@ -165,6 +166,9 @@ class AgentServer(backend.util.service.AppProcess):
@staticmethod
async def test_delete_graph(graph_id: str, user_id: str):
await backend.server.v2.library.db.delete_library_agent_by_graph_id(
graph_id=graph_id, user_id=user_id
)
return await backend.server.routers.v1.delete_graph(graph_id, user_id)
@staticmethod

View File

@ -219,13 +219,6 @@ async def do_create_graph(
400, detail=f"Template #{create_graph.template_id} not found"
)
graph.version = 1
# Create a library agent for the new graph
await backend.server.v2.library.db.create_library_agent(
graph.id,
graph.version,
user_id,
)
else:
raise HTTPException(
status_code=400, detail="Either graph or template_id must be provided."
@ -234,6 +227,14 @@ async def do_create_graph(
graph.reassign_ids(user_id=user_id, reassign_graph_id=True)
graph = await graph_db.create_graph(graph, user_id=user_id)
# Create a library agent for the new graph
await backend.server.v2.library.db.create_library_agent(
graph.id,
graph.version,
user_id,
)
graph = await on_graph_activate(
graph,
get_credentials=lambda id: integration_creds_manager.get(user_id, id),

View File

@ -156,6 +156,21 @@ async def update_library_agent(
) from e
async def delete_library_agent_by_graph_id(graph_id: str, user_id: str) -> None:
"""
Deletes a library agent for the given user
"""
try:
await prisma.models.LibraryAgent.prisma().delete_many(
where={"agentId": graph_id, "userId": user_id}
)
except prisma.errors.PrismaError as e:
logger.error(f"Database error deleting library agent: {str(e)}")
raise backend.server.v2.store.exceptions.DatabaseError(
"Failed to delete library agent"
) from e
async def add_store_agent_to_library(
store_listing_version_id: str, user_id: str
) -> None: