feat: add calibration sync system.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""
|
||||
Calibration Sync Router
|
||||
|
||||
Endpoints for triggering and inspecting the SFM-driven calibration sync.
|
||||
The scheduled job runs daily; this router is what the "Sync now" button in
|
||||
Settings calls, plus a status endpoint for diagnostics.
|
||||
"""
|
||||
|
||||
from fastapi import APIRouter
|
||||
from typing import Dict, Any
|
||||
|
||||
from backend.services.calibration_sync import (
|
||||
sync_all_calibrations,
|
||||
get_calibration_sync_scheduler,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix="/api/calibration", tags=["calibration"])
|
||||
|
||||
|
||||
@router.post("/sync")
|
||||
async def trigger_calibration_sync() -> Dict[str, Any]:
|
||||
"""Run a full calibration sync now and return the summary."""
|
||||
summary = await sync_all_calibrations()
|
||||
get_calibration_sync_scheduler().last_run = summary
|
||||
return summary
|
||||
|
||||
|
||||
@router.get("/sync/status")
|
||||
def calibration_sync_status() -> Dict[str, Any]:
|
||||
"""Return scheduler status and the most recent run's summary."""
|
||||
return get_calibration_sync_scheduler().status()
|
||||
Reference in New Issue
Block a user