"""Handlers for ECS task management.""" from fastapi import APIRouter from moneyhub.logic.ecs_task import trigger_dbt_refresh_task from moneyhub.schemas.ecs_task import DbtRefreshRequest from moneyhub.schemas.ecs_task import DbtRefreshResponse ecs_task_router = APIRouter(prefix='/ecs', tags=['ecs_task']) @ecs_task_router.post( '/dbt-refresh', status_code=200, response_model=DbtRefreshResponse ) def trigger_dbt_refresh( dbt_refresh_request: DbtRefreshRequest ) -> DbtRefreshResponse: """ Trigger a dbt refresh task via Step Functions and ECS. Args: dbt_refresh_request: Request containing task configuration parameters Returns: DbtRefreshResponse: Response containing Step Function execution information """ result = trigger_dbt_refresh_task(dbt_refresh_request) message = ( f'dbt refresh Step Function triggered successfully ' f'(Full Refresh: {dbt_refresh_request.full_refresh})' ) return DbtRefreshResponse( execution_arn=result['execution_arn'], start_date=result['start_date'], status='RUNNING', message=message )