more methods
This commit is contained in:
parent
040dacf2f5
commit
5473be3675
|
|
@ -21,3 +21,20 @@ async def namespace_controller(
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception(f"Error during namespace upsert {namespace.model_dump_json()}")
|
logger.exception(f"Error during namespace upsert {namespace.model_dump_json()}")
|
||||||
return HTTPException(status_code=500, detail="Error during namespace upsert")
|
return HTTPException(status_code=500, detail="Error during namespace upsert")
|
||||||
|
|
||||||
|
|
||||||
|
# @router.get("/{namespace_name}")
|
||||||
|
async def namespace_get_by_name_controller(
|
||||||
|
namespace_name: str, namespace_repository: NamespaceRepositoryDependency
|
||||||
|
):
|
||||||
|
try:
|
||||||
|
assert (namespace := await namespace_repository.get_by_name(namespace_name))
|
||||||
|
return namespace
|
||||||
|
|
||||||
|
except AssertionError:
|
||||||
|
logger.warning(f"Namespace not found {namespace_name}")
|
||||||
|
return HTTPException(status_code=404, detail="Namespace not found")
|
||||||
|
|
||||||
|
except Exception:
|
||||||
|
logger.exception("Error during chain get")
|
||||||
|
return HTTPException(status_code=500, detail="Error during namespace get")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
from chain_service.database.database import Database
|
from chain_service.database.database import Database
|
||||||
from chain_service.database.models.namespace import Namespace
|
from chain_service.database.models.namespace import Namespace
|
||||||
|
|
||||||
|
from uuid import UUID
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
|
||||||
class NamespaceRepository:
|
class NamespaceRepository:
|
||||||
|
|
||||||
|
|
@ -12,3 +15,17 @@ class NamespaceRepository:
|
||||||
payload = namespace.model_dump(by_alias=True)
|
payload = namespace.model_dump(by_alias=True)
|
||||||
await self.collection.replace_one(query, payload, upsert=True)
|
await self.collection.replace_one(query, payload, upsert=True)
|
||||||
return namespace
|
return namespace
|
||||||
|
|
||||||
|
async def get_by_id(self, namespace_id: str) -> Namespace | None:
|
||||||
|
try:
|
||||||
|
query = {"_id": UUID(namespace_id)}
|
||||||
|
namespace = await self.collection.find_one(query)
|
||||||
|
return Namespace.model_validate(namespace) if namespace else None
|
||||||
|
|
||||||
|
except ValueError:
|
||||||
|
logger.error(f"Cannot convert {namespace_id} to UUID")
|
||||||
|
|
||||||
|
async def get_by_name(self, name: str) -> Namespace | None:
|
||||||
|
query = {"name": name}
|
||||||
|
namespace = await self.collection.find_one(query)
|
||||||
|
return Namespace.model_validate(namespace) if namespace else None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user