| 1234567891011121314151617181920212223 |
- from fastapi import APIRouter, Depends, HTTPException
- from sqlalchemy.ext.asyncio import AsyncSession
- from backend.app.core.dependencies import require_permissions
- from backend.app.db.session import get_db
- from backend.app.services.center_sync import get_sync_status, get_sync_token, trigger_center_sync
- router = APIRouter(prefix="/sync", tags=["sync"])
- @router.post("/center", dependencies=[Depends(require_permissions(["users.view"]))])
- async def sync_center(db: AsyncSession = Depends(get_db)):
- token = await get_sync_token(db)
- if not token:
- raise HTTPException(status_code=400, detail="未找到中台同步 token,请先通过带 token 的地址登录")
- await trigger_center_sync(token, restart=True, wait=False)
- return {"success": True}
- @router.get("/center/status", dependencies=[Depends(require_permissions(["users.view"]))])
- async def sync_center_status(db: AsyncSession = Depends(get_db)):
- return await get_sync_status(db)
|