21 lines
820 B
Python
21 lines
820 B
Python
"""总控平台 APK 最新发布接口。"""
|
|
|
|
from fastapi import APIRouter
|
|
from fastapi.responses import JSONResponse
|
|
|
|
from services.releases import release_service
|
|
from services.workbench import ControlPlaneStorageUnavailable, error_body
|
|
|
|
router = APIRouter(prefix="/releases", tags=["APK发布"])
|
|
|
|
|
|
@router.get("/latest", response_model=dict)
|
|
async def get_latest_release():
|
|
try:
|
|
release = await release_service.latest()
|
|
except ControlPlaneStorageUnavailable as exc:
|
|
return JSONResponse(status_code=503, content=error_body("control_plane_storage_unavailable", str(exc), retryable=True))
|
|
if release is None:
|
|
return JSONResponse(status_code=404, content=error_body("release_not_found", "尚未建立稳定版发布数据"))
|
|
return {"code": 200, "success": True, "data": release}
|