32 lines
946 B
Python
32 lines
946 B
Python
"""
|
|
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()
|