Files
Unraid-AppOps-Gateway-Public/backend/app/api/routes_safety_center.py
T

68 lines
2.3 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, Depends, HTTPException
from sqlmodel import Session
from ..db.session import get_session
from ..services import safety_center_service
router = APIRouter(prefix='/api/safety')
@router.get('/dashboard')
def dashboard(refresh: bool = False, session: Session = Depends(get_session)):
return safety_center_service.get_dashboard(session, force_refresh=refresh)
@router.get('/summary')
def summary(session: Session = Depends(get_session)):
return safety_center_service.get_summary(session)
@router.get('/sections')
def sections(session: Session = Depends(get_session)):
return safety_center_service.get_sections(session)
@router.get('/findings')
def findings(session: Session = Depends(get_session)):
return safety_center_service.get_findings(session)
@router.get('/recommendations')
def recommendations(session: Session = Depends(get_session)):
return safety_center_service.get_recommendations(session)
@router.get('/score-breakdown')
def score_breakdown(session: Session = Depends(get_session)):
return safety_center_service.get_score_breakdown(session)
@router.post('/refresh')
def refresh(session: Session = Depends(get_session)):
return safety_center_service.refresh(session)
@router.post('/findings/{finding_id}/acknowledge')
def acknowledge_finding(finding_id: str, session: Session = Depends(get_session)):
return safety_center_service.acknowledge_finding(session, finding_id)
@router.post('/findings/{finding_id}/dismiss')
def dismiss_finding(finding_id: str, session: Session = Depends(get_session)):
return safety_center_service.dismiss_finding(session, finding_id)
@router.post('/recommendations/{recommendation_id}/dismiss')
def dismiss_recommendation(recommendation_id: str, session: Session = Depends(get_session)):
return safety_center_service.dismiss_recommendation(session, recommendation_id)
@router.post('/recommendations/{recommendation_id}/create-remediation-plan')
def create_remediation_plan(recommendation_id: str, session: Session = Depends(get_session)):
result = safety_center_service.create_remediation_plan(session, recommendation_id)
if result.get('status') == 'not_found':
raise HTTPException(status_code=404, detail='recommendation_not_found')
return result