mirror of
https://github.com/home-assistant/core.git
synced 2025-07-11 15:27:08 +00:00
Speed up listing issues via the repairs websocket api (#109149)
This commit is contained in:
parent
04f0128a1c
commit
bcb9a10d5a
@ -1,7 +1,6 @@
|
|||||||
"""The repairs websocket API."""
|
"""The repairs websocket API."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
@ -65,21 +64,25 @@ def ws_list_issues(
|
|||||||
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Return a list of issues."""
|
"""Return a list of issues."""
|
||||||
|
|
||||||
def ws_dict(kv_pairs: list[tuple[Any, Any]]) -> dict[Any, Any]:
|
|
||||||
excluded_keys = ("active", "data", "is_persistent")
|
|
||||||
result = {k: v for k, v in kv_pairs if k not in excluded_keys}
|
|
||||||
result["ignored"] = result["dismissed_version"] is not None
|
|
||||||
result["created"] = result["created"].isoformat()
|
|
||||||
return result
|
|
||||||
|
|
||||||
issue_registry = async_get_issue_registry(hass)
|
issue_registry = async_get_issue_registry(hass)
|
||||||
issues = [
|
issues = [
|
||||||
dataclasses.asdict(issue, dict_factory=ws_dict)
|
{
|
||||||
|
"breaks_in_ha_version": issue.breaks_in_ha_version,
|
||||||
|
"created": issue.created,
|
||||||
|
"dismissed_version": issue.dismissed_version,
|
||||||
|
"ignored": issue.dismissed_version is not None,
|
||||||
|
"domain": issue.domain,
|
||||||
|
"is_fixable": issue.is_fixable,
|
||||||
|
"issue_domain": issue.issue_domain,
|
||||||
|
"issue_id": issue.issue_id,
|
||||||
|
"learn_more_url": issue.learn_more_url,
|
||||||
|
"severity": issue.severity,
|
||||||
|
"translation_key": issue.translation_key,
|
||||||
|
"translation_placeholders": issue.translation_placeholders,
|
||||||
|
}
|
||||||
for issue in issue_registry.issues.values()
|
for issue in issue_registry.issues.values()
|
||||||
if issue.active
|
if issue.active
|
||||||
]
|
]
|
||||||
|
|
||||||
connection.send_result(msg["id"], {"issues": issues})
|
connection.send_result(msg["id"], {"issues": issues})
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user