Initial MVP for QA asset backend
This commit is contained in:
28
hy_qa_asset_backend/backend/app/api/tasks.py
Normal file
28
hy_qa_asset_backend/backend/app/api/tasks.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app import models, schemas
|
||||
from app.database import get_db
|
||||
from app.services.task_runner import TaskRunner
|
||||
|
||||
router = APIRouter(prefix="/tasks", tags=["tasks"])
|
||||
|
||||
|
||||
@router.get("/runs", response_model=list[schemas.TaskRunRead])
|
||||
def list_task_runs(db: Session = Depends(get_db)) -> list[models.TaskRun]:
|
||||
return db.query(models.TaskRun).order_by(models.TaskRun.created_at.desc()).limit(100).all()
|
||||
|
||||
|
||||
@router.get("/runs/{task_id}", response_model=schemas.TaskRunRead)
|
||||
def get_task_run(task_id: int, db: Session = Depends(get_db)) -> models.TaskRun:
|
||||
task = db.get(models.TaskRun, task_id)
|
||||
if not task:
|
||||
raise HTTPException(status_code=404, detail="任务不存在")
|
||||
return task
|
||||
|
||||
|
||||
@router.post("/run-now", response_model=schemas.TaskRunRead)
|
||||
async def run_now(db: Session = Depends(get_db)) -> models.TaskRun:
|
||||
runner = TaskRunner()
|
||||
return await runner.run(db, task_type=models.TaskType.manual_scan)
|
||||
|
||||
Reference in New Issue
Block a user