Apply current workspace changes

This commit is contained in:
2026-04-22 01:52:21 +08:00
parent cf34b9a8ed
commit cb518b431f
449 changed files with 92252 additions and 321 deletions
+25 -15
View File
@@ -1,32 +1,38 @@
from __future__ import annotations
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel, Field
from ..database import get_db
from ..models import AuthUserORM
from ..services.job_queue_service import job_queue_service
from ..services.task_service import task_service
from ..services.unpack_service import get_unpack_config
from ..services.unpack_service import build_unpack_run_config, get_unpack_config
from .dependencies import _require_admin
router = APIRouter()
class UnpackRunRequest(BaseModel):
max_files_per_run: Optional[int] = Field(default=None, ge=0)
max_runtime_minutes: Optional[int] = Field(default=None, ge=0)
@router.get("/unpack/config")
async def get_unpack_config_endpoint():
"""
获取解包配置 (来源 .env)。
"""
return get_unpack_config()
@router.post("/unpack/run", status_code=202)
async def run_unpack_endpoint(background_tasks: BackgroundTasks, admin_user: AuthUserORM = Depends(_require_admin)):
"""
触发一次解包任务。
"""
config = get_unpack_config()
async def run_unpack_endpoint(
request: Optional[UnpackRunRequest] = None,
admin_user: AuthUserORM = Depends(_require_admin),
):
del admin_user
overrides = request.model_dump(exclude_none=True) if request else None
config = build_unpack_run_config(overrides)
if not config.get("source_dirs"):
raise HTTPException(status_code=400, detail="UNPACK_SOURCE_DIRS is not configured.")
@@ -36,7 +42,11 @@ async def run_unpack_endpoint(background_tasks: BackgroundTasks, admin_user: Aut
"Archive unpack",
params=config,
)
await job_queue_service.create_job("UNPACK_ARCHIVES", payload=config, task_id=task_id)
await job_queue_service.create_job(
"UNPACK_ARCHIVES",
payload=config,
task_id=task_id,
)
return {"message": "Unpack task queued", "task_id": task_id}
except ValueError as e:
raise HTTPException(status_code=409, detail=str(e))
except ValueError as exc:
raise HTTPException(status_code=409, detail=str(exc)) from exc