from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from app.db.session import get_db from app.models.monitor import Monitor from app.services.uptime_checker import UptimeChecker router = APIRouter(prefix="/checks", tags=["checks"]) @router.post("/run/{monitor_id}") def run_check(monitor_id: int, db: Session = Depends(get_db)): monitor = db.query(Monitor).filter(Monitor.id == monitor_id).first() if not monitor: raise HTTPException(status_code=404, detail="Monitor not found") checker = UptimeChecker(db) result = checker.check_monitor(monitor) return result @router.post("/run-all") def run_all_checks(db: Session = Depends(get_db)): checker = UptimeChecker(db) results = checker.check_all_active_monitors() return {"checks_run": len(results), "results": results}