Skip to content

Commit bcb9a10

Browse files
authored
Speed up listing issues via the repairs websocket api (#109149)
1 parent 04f0128 commit bcb9a10

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

homeassistant/components/repairs/websocket_api.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""The repairs websocket API."""
22
from __future__ import annotations
33

4-
import dataclasses
54
from http import HTTPStatus
65
from typing import Any
76

@@ -65,21 +64,25 @@ def ws_list_issues(
6564
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
6665
) -> None:
6766
"""Return a list of issues."""
68-
69-
def ws_dict(kv_pairs: list[tuple[Any, Any]]) -> dict[Any, Any]:
70-
excluded_keys = ("active", "data", "is_persistent")
71-
result = {k: v for k, v in kv_pairs if k not in excluded_keys}
72-
result["ignored"] = result["dismissed_version"] is not None
73-
result["created"] = result["created"].isoformat()
74-
return result
75-
7667
issue_registry = async_get_issue_registry(hass)
7768
issues = [
78-
dataclasses.asdict(issue, dict_factory=ws_dict)
69+
{
70+
"breaks_in_ha_version": issue.breaks_in_ha_version,
71+
"created": issue.created,
72+
"dismissed_version": issue.dismissed_version,
73+
"ignored": issue.dismissed_version is not None,
74+
"domain": issue.domain,
75+
"is_fixable": issue.is_fixable,
76+
"issue_domain": issue.issue_domain,
77+
"issue_id": issue.issue_id,
78+
"learn_more_url": issue.learn_more_url,
79+
"severity": issue.severity,
80+
"translation_key": issue.translation_key,
81+
"translation_placeholders": issue.translation_placeholders,
82+
}
7983
for issue in issue_registry.issues.values()
8084
if issue.active
8185
]
82-
8386
connection.send_result(msg["id"], {"issues": issues})
8487

8588

0 commit comments

Comments
 (0)