From c215aee9405fc6c3bed4d688ad9f16941b4359f4 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 16 Jan 2025 22:30:14 -1000 Subject: [PATCH] Reduce duplicate code in the Bluetooth WebSocket API (#135808) --- .../components/bluetooth/websocket_api.py | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/homeassistant/components/bluetooth/websocket_api.py b/homeassistant/components/bluetooth/websocket_api.py index b295fb2ac63..45445a7a00f 100644 --- a/homeassistant/components/bluetooth/websocket_api.py +++ b/homeassistant/components/bluetooth/websocket_api.py @@ -106,36 +106,23 @@ class _AdvertisementSubscription: self._async_added(self.pending_service_infos) self.pending_service_infos.clear() - def _async_added(self, service_infos: Iterable[BluetoothServiceInfoBleak]) -> None: + def _async_event_message(self, message: dict[str, Any]) -> None: self.connection.send_message( - json_bytes( - websocket_api.event_message( - self.ws_msg_id, - { - "add": [ - serialize_service_info(service_info, self.time_diff) - for service_info in service_infos - ] - }, - ) - ) + json_bytes(websocket_api.event_message(self.ws_msg_id, message)) + ) + + def _async_added(self, service_infos: Iterable[BluetoothServiceInfoBleak]) -> None: + self._async_event_message( + { + "add": [ + serialize_service_info(service_info, self.time_diff) + for service_info in service_infos + ] + } ) def _async_removed(self, address: str) -> None: - self.connection.send_message( - json_bytes( - websocket_api.event_message( - self.ws_msg_id, - { - "remove": [ - { - "address": address, - } - ] - }, - ) - ) - ) + self._async_event_message({"remove": [{"address": address}]}) @callback def _async_on_advertisement(