|
1 | 1 | """The repairs websocket API."""
|
2 | 2 | from __future__ import annotations
|
3 | 3 |
|
4 |
| -import dataclasses |
5 | 4 | from http import HTTPStatus
|
6 | 5 | from typing import Any
|
7 | 6 |
|
@@ -65,21 +64,25 @@ def ws_list_issues(
|
65 | 64 | hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
66 | 65 | ) -> None:
|
67 | 66 | """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 |
| - |
76 | 67 | issue_registry = async_get_issue_registry(hass)
|
77 | 68 | 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 | + } |
79 | 83 | for issue in issue_registry.issues.values()
|
80 | 84 | if issue.active
|
81 | 85 | ]
|
82 |
| - |
83 | 86 | connection.send_result(msg["id"], {"issues": issues})
|
84 | 87 |
|
85 | 88 |
|
|
0 commit comments