26 lines
871 B
Python
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")
|