chain-service/chain_service/controllers/namespace.py
2024-03-13 03:01:26 +07:00

41 lines
1.3 KiB
Python

from loguru import logger
from fastapi import APIRouter, HTTPException
from chain_service.database.models.namespace import Namespace
from chain_service.dependencies.namespace_repository import (
NamespaceRepositoryDependency,
)
router = APIRouter(prefix="/namespace")
@router.post("/")
async def namespace_controller(
namespace: Namespace, namespace_repository: NamespaceRepositoryDependency
):
try:
upserted_namespace = await namespace_repository.upsert(namespace)
return upserted_namespace
except Exception:
logger.exception(f"Error during namespace upsert {namespace.model_dump_json()}")
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")