Skip to content

Commit ce72f8e

Browse files
committed
Add common routine for updating the cache
1 parent 19c6ec6 commit ce72f8e

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

roborock/devices/traits/v1/home.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ async def discover_home(self) -> None:
7171

7272
home_cache = await self._build_home_cache()
7373
_LOGGER.debug("Home discovery complete, caching data for %d maps", len(home_cache))
74-
cache_data = await self._cache.get()
75-
cache_data.home_cache = home_cache
76-
await self._cache.set(cache_data)
74+
await self._update_home_cache(home_cache)
7775
self._home_cache = home_cache
7876

7977
async def _refresh_map_data(self, map_info) -> CombinedMapInfo:
@@ -132,10 +130,7 @@ async def refresh(self) -> Self:
132130
map_data = await self._refresh_map_data(current_map_info)
133131
if map_data != current_map_data:
134132
self._home_cache[map_flag] = map_data
135-
# Persist to cache
136-
cache_data = await self._cache.get()
137-
cache_data.home_cache = self._home_cache
138-
await self._cache.set(cache_data)
133+
await self._update_home_cache(self._home_cache)
139134

140135
return self
141136

@@ -155,3 +150,8 @@ def current_map_data(self) -> CombinedMapInfo | None:
155150
def _parse_response(self, response: common.V1ResponseData) -> Self:
156151
"""This trait does not parse responses directly."""
157152
raise NotImplementedError("HomeTrait does not support direct command responses")
153+
154+
async def _update_home_cache(self, home_cache: dict[int, CombinedMapInfo]) -> None:
155+
cache_data = await self._cache.get()
156+
cache_data.home_cache = home_cache
157+
await self._cache.set(cache_data)

0 commit comments

Comments
 (0)