File size: 1,110 Bytes
2d521fd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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