from __future__ import annotations from typing import Any from fastapi import FastAPI, Request from app.ha.exceptions import HaAuthError, HaClientError, HaHttpError def register_exception_handlers(app: FastAPI) -> None: @app.exception_handler(HaClientError) async def handle_ha_client_error(request: Request, exc: HaClientError) -> Any: # pragma: no cover - einfacher Wrapper if isinstance(exc, HaAuthError): return {"detail": "Ungültige Authentifizierung gegenüber Home Assistant."} if isinstance(exc, HaHttpError): return { "detail": "Home Assistant meldet einen Fehler.", "upstream_status": exc.status_code, } return {"detail": str(exc)}