chain-service/chain_service/controllers/run_chain.py
2024-02-28 13:01:47 +07:00

26 lines
871 B
Python

from chain_service.schema.run_chain import RunChainInput
from chain_service.dependencies.chain_repository import ChainRepositoryDependency
from loguru import logger
from fastapi import APIRouter, HTTPException
router = APIRouter()
@router.post("/run_chain")
async def run_chain_controller(
run_chain_input: RunChainInput, chain_repository: ChainRepositoryDependency
):
try:
assert (chain := await chain_repository.get_by_id(run_chain_input.chain_id))
logger.info(f"Got chain to run {chain}")
return {"works": True}
except AssertionError:
logger.info(f"Chain not found {run_chain_input.chain_id}")
return HTTPException(status_code=404, detail="Chain not found")
except Exception:
logger.exception("Error during run chain")
return HTTPException(status_code=500, detail="Error during run chain")