| from fastapi import APIRouter, HTTPException |
| from app.models.risk_models import RiskResponse |
| from app.services.risk_service import get_system_risk |
|
|
| router = APIRouter() |
|
|
|
|
| @router.get("/get_risk", response_model=RiskResponse) |
| async def get_risk(): |
| try: |
| risk = get_system_risk() |
| if risk < 0.3: |
| status = "low" |
| elif risk < 0.6: |
| status = "moderate" |
| elif risk < 0.8: |
| status = "high" |
| else: |
| status = "critical" |
| return RiskResponse(system_risk=risk, status=status) |
| except Exception as e: |
| raise HTTPException(status_code=500, detail=str(e)) |
|
|
|
|
| @router.get("/history") |
| async def get_risk_history(): |
| """ |
| Return dummy historical risk data for the last 24 hours. |
| Replace with real database query later. |
| """ |
| import random |
| import datetime |
| now = datetime.datetime.now() |
| data = [] |
| for i in range(24, 0, -1): |
| data.append({ |
| "time": (now - datetime.timedelta(hours=i)).isoformat(), |
| "risk": round(random.uniform(0.2, 0.8), 2) |
| }) |
| return data |
|
|