Files
update-server/app/api/routes/admin_publish.py
T

19 lines
602 B
Python

import asyncio
from fastapi import APIRouter, Depends, HTTPException, Request
from app.core.security import require_permission
from app.services import publish_service
router = APIRouter()
PUBLISH_LOCK = asyncio.Lock()
@router.post("/admin/publish")
async def admin_publish_version(request: Request, auth=Depends(require_permission("publish:manage"))):
if PUBLISH_LOCK.locked():
raise HTTPException(status_code=409, detail="已有版本发布任务正在进行,请等待完成后再发布")
async with PUBLISH_LOCK:
return await publish_service.publish_version(request)