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.warning(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")