main: HA-Integration mit Exception-Handling und Testabdeckung
This commit is contained in:
20
app/core/exceptions.py
Normal file
20
app/core/exceptions.py
Normal file
@@ -0,0 +1,20 @@
|
||||
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)}
|
||||
Reference in New Issue
Block a user