File size: 1,066 Bytes
2d521fd
 
 
 
 
 
 
 
 
 
 
afa4de7
 
 
 
2d521fd
 
 
afa4de7
 
 
 
 
 
 
 
 
 
2d521fd
 
 
 
 
 
afa4de7
 
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
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()
    except NotImplementedError:
        raise HTTPException(
            status_code=501,
            detail="This endpoint is deprecated and not implemented")
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

    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)


@router.get("/history")
async def get_risk_history():
    import random
    import datetime
    now = datetime.datetime.now()
    data = [{"time": (now - datetime.timedelta(hours=i)).isoformat(),
             "risk": round(random.uniform(0.2, 0.8), 2)} for i in range(24, 0, -1)]
    return data