mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-24 12:41:02 +02:00
Plumb collection manager into librarian
This commit is contained in:
parent
fca219bc30
commit
70876550dd
1 changed files with 48 additions and 17 deletions
|
|
@ -127,7 +127,7 @@ class CollectionManager:
|
||||||
|
|
||||||
async def update_collection(self, request: CollectionManagementRequest) -> CollectionManagementResponse:
|
async def update_collection(self, request: CollectionManagementRequest) -> CollectionManagementResponse:
|
||||||
"""
|
"""
|
||||||
Update collection metadata
|
Update collection metadata (creates if doesn't exist)
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
request: Collection management request
|
request: Collection management request
|
||||||
|
|
@ -136,24 +136,55 @@ class CollectionManager:
|
||||||
CollectionManagementResponse with updated collection
|
CollectionManagementResponse with updated collection
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Extract fields for update
|
# Check if collection exists, create if it doesn't
|
||||||
name = request.name if request.name else None
|
existing = await self.table_store.get_collection(request.user, request.collection)
|
||||||
description = request.description if request.description else None
|
if not existing:
|
||||||
tags = list(request.tags) if request.tags else None
|
# Create new collection with provided metadata
|
||||||
|
logger.info(f"Creating new collection {request.user}/{request.collection}")
|
||||||
|
|
||||||
updated_collection = await self.table_store.update_collection(
|
name = request.name if request.name else request.collection
|
||||||
request.user, request.collection, name, description, tags
|
description = request.description if request.description else ""
|
||||||
)
|
tags = set(request.tags) if request.tags else set()
|
||||||
|
|
||||||
collection_metadata = CollectionMetadata(
|
await self.table_store.create_collection(
|
||||||
user=updated_collection["user"],
|
user=request.user,
|
||||||
collection=updated_collection["collection"],
|
collection=request.collection,
|
||||||
name=updated_collection["name"],
|
name=name,
|
||||||
description=updated_collection["description"],
|
description=description,
|
||||||
tags=updated_collection["tags"],
|
tags=tags
|
||||||
created_at="", # Not returned by update
|
)
|
||||||
updated_at=updated_collection["updated_at"]
|
|
||||||
)
|
# Get the newly created collection for response
|
||||||
|
created_collection = await self.table_store.get_collection(request.user, request.collection)
|
||||||
|
|
||||||
|
collection_metadata = CollectionMetadata(
|
||||||
|
user=created_collection["user"],
|
||||||
|
collection=created_collection["collection"],
|
||||||
|
name=created_collection["name"],
|
||||||
|
description=created_collection["description"],
|
||||||
|
tags=created_collection["tags"],
|
||||||
|
created_at=created_collection["created_at"],
|
||||||
|
updated_at=created_collection["updated_at"]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
# Collection exists, update it
|
||||||
|
name = request.name if request.name else None
|
||||||
|
description = request.description if request.description else None
|
||||||
|
tags = list(request.tags) if request.tags else None
|
||||||
|
|
||||||
|
updated_collection = await self.table_store.update_collection(
|
||||||
|
request.user, request.collection, name, description, tags
|
||||||
|
)
|
||||||
|
|
||||||
|
collection_metadata = CollectionMetadata(
|
||||||
|
user=updated_collection["user"],
|
||||||
|
collection=updated_collection["collection"],
|
||||||
|
name=updated_collection["name"],
|
||||||
|
description=updated_collection["description"],
|
||||||
|
tags=updated_collection["tags"],
|
||||||
|
created_at="", # Not returned by update
|
||||||
|
updated_at=updated_collection["updated_at"]
|
||||||
|
)
|
||||||
|
|
||||||
return CollectionManagementResponse(
|
return CollectionManagementResponse(
|
||||||
success="true",
|
success="true",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue