invoke logic
This commit is contained in:
parent
af68c44193
commit
d1bc80c7f1
|
|
@ -1,6 +1,18 @@
|
||||||
from chain_service.schema.run_chain import RunChainInput
|
from chain_service.schema.run_chain import RunChainInput
|
||||||
|
|
||||||
from chain_service.dependencies.chain_repository import ChainRepositoryDependency
|
from chain_service.dependencies.chain_repository import ChainRepositoryDependency
|
||||||
|
|
||||||
|
from chain_service.dependencies.progress_chain_repository import (
|
||||||
|
ProgressChainRepositoryDependency,
|
||||||
|
)
|
||||||
|
|
||||||
|
from chain_service.dependencies.progress_chain_runner_service import (
|
||||||
|
ProgressChainRunnerServiceDependency,
|
||||||
|
)
|
||||||
|
|
||||||
|
from chain_service.database.models.progress_chain import ProgressChain
|
||||||
|
|
||||||
|
import asyncio
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
|
|
||||||
|
|
@ -9,12 +21,23 @@ router = APIRouter()
|
||||||
|
|
||||||
@router.post("/run_chain")
|
@router.post("/run_chain")
|
||||||
async def run_chain_controller(
|
async def run_chain_controller(
|
||||||
run_chain_input: RunChainInput, chain_repository: ChainRepositoryDependency
|
run_chain_input: RunChainInput,
|
||||||
|
chain_repository: ChainRepositoryDependency,
|
||||||
|
progress_chain_repository: ProgressChainRepositoryDependency,
|
||||||
|
progress_chain_runner_service: ProgressChainRunnerServiceDependency,
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
assert (chain := await chain_repository.get_by_id(run_chain_input.chain_id))
|
assert (chain := await chain_repository.get_by_id(run_chain_input.chain_id))
|
||||||
logger.info(f"Got chain to run {chain}")
|
|
||||||
return {"works": True}
|
progress_chain = ProgressChain.create_from_chain(
|
||||||
|
chain=chain,
|
||||||
|
task_id=run_chain_input.task_id,
|
||||||
|
recipients=run_chain_input.recipients,
|
||||||
|
)
|
||||||
|
|
||||||
|
progress_chain = await progress_chain_repository.upsert(progress_chain)
|
||||||
|
asyncio.create_task(progress_chain_runner_service.process(progress_chain))
|
||||||
|
return {}
|
||||||
|
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
logger.warning(f"Chain not found {run_chain_input.chain_id}")
|
logger.warning(f"Chain not found {run_chain_input.chain_id}")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user