35 lines
966 B
Python
35 lines
966 B
Python
from fastapi import APIRouter, Query
|
|
import database as db
|
|
from typing import Any
|
|
from logger import get_logger
|
|
logger = get_logger(__name__)
|
|
|
|
router = APIRouter(prefix="/incidents", tags=["incidents"])
|
|
|
|
|
|
@router.get("/{incident_id}")
|
|
def get_incident(incident_id: int) -> dict[str, Any] | None:
|
|
conn = db.connect_to_db()
|
|
try:
|
|
return db.get_incident_by_id(conn, incident_id)
|
|
except Exception as e:
|
|
logger.error(f"Error fetching incident {incident_id}: {e}", exc_info=True)
|
|
return None
|
|
finally:
|
|
conn.close()
|
|
|
|
|
|
@router.get("/")
|
|
def get_incidents(
|
|
id: int | None = Query(None),
|
|
before: int | None = Query(None)
|
|
) -> list[dict[str, Any]]:
|
|
conn = db.connect_to_db()
|
|
try:
|
|
return db.get_incidents(conn, id=id, before=before)
|
|
except Exception as e:
|
|
logger.error(f"Error fetching incidents (id={id}, before={before}): {e}", exc_info=True)
|
|
return []
|
|
finally:
|
|
conn.close()
|