feat: add manual revision and dashboard list apis

This commit is contained in:
afei A
2026-03-27 23:38:50 +08:00
parent d02fc8565f
commit eeaff269eb
24 changed files with 1950 additions and 64 deletions

View File

@@ -1,16 +1,38 @@
"""Workflow routes."""
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from app.api.schemas.workflow import WorkflowStatusResponse
from app.api.schemas.workflow import WorkflowListResponse, WorkflowStatusResponse
from app.application.services.workflow_service import WorkflowService
from app.domain.enums import OrderStatus
from app.infra.db.session import get_db_session
router = APIRouter(prefix="/workflows", tags=["workflows"])
workflow_service = WorkflowService()
@router.get("", response_model=WorkflowListResponse)
async def list_workflows(
page: int = Query(default=1, ge=1),
limit: int = Query(default=20, ge=1, le=100),
query: str | None = Query(default=None, min_length=1),
status_filter: OrderStatus | None = Query(default=None, alias="status"),
order_id: int | None = Query(default=None, ge=1),
session: AsyncSession = Depends(get_db_session),
) -> WorkflowListResponse:
"""Fetch recent workflow runs for workflow lookup pages."""
return await workflow_service.list_workflows(
session,
page=page,
limit=limit,
query=query,
status_filter=status_filter,
order_id=order_id,
)
@router.get("/{order_id}", response_model=WorkflowStatusResponse)
async def get_workflow_status(
order_id: int,
@@ -19,4 +41,3 @@ async def get_workflow_status(
"""Fetch persisted workflow status for an order."""
return await workflow_service.get_workflow_status(session, order_id)