from datetime import datetime from typing import List from fastapi import APIRouter, Depends from loguru import logger from app.common.models import CodeDepotDoc from app.common.models.deployment.deployment import Deployment, InitDeploymentRequest from app.routes.deployment.service import DeploymentService, get_deployment_service router = APIRouter(prefix="/deployment") @router.post("/initDeployment") ## insert a new Deployment object to db async def init_deployment( request: InitDeploymentRequest, service: DeploymentService = Depends(get_deployment_service) ) -> Deployment: return await service.init_deployment(request) @router.post("/updateDeploymentStatus") async def update_deployment( request: Deployment, service: DeploymentService = Depends(get_deployment_service) ) -> Deployment: return await service.update_deployment_status(request) @router.get("/checkDeploymentStatus") async def check_deployment_status( deployment_id: str, service: DeploymentService = Depends(get_deployment_service) ) -> List[Deployment]: return await service.check_deployment_status(deployment_id) @router.post("/createDummyCodeDepot") async def create_dummy_code_depot( service: DeploymentService = Depends(get_deployment_service) ) -> CodeDepotDoc: """ Create a dummy code depot for testing purposes. """ try: depot_name = await service.create_dummy_code_depot() return depot_name except Exception as e: logger.error(f"Failed to create dummy code depot: {e}") raise e