From fde2254e51c381035317709c53028902e8af380f Mon Sep 17 00:00:00 2001 From: bitwhisker Date: Mon, 12 Oct 2026 21:26:28 +0200 Subject: [PATCH] Only update SpaceAPI, when state differs --- api/src/dooris_api/spaceapi.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/api/src/dooris_api/spaceapi.py b/api/src/dooris_api/spaceapi.py index 72d7fa9..967c54b 100644 --- a/api/src/dooris_api/spaceapi.py +++ b/api/src/dooris_api/spaceapi.py @@ -23,6 +23,23 @@ class SpaceApiClient: ) async def set_status(self, is_open: bool): + current_is_open = await self.get_status() + if current_is_open == is_open: + logger.info(f"club status is already set to open={is_open}") + return logger.info(f"Setting club status to open={is_open} via spaceapid") await self.http.put("/state/open", data=str(is_open).encode("ASCII")) - + + async def get_status(self) -> bool | None: + logger.debug("Getting space data via spaceapid") + resp = await self.http.get("/") + + data: dict = await resp.json() + + if (state := data.get("state")) is not None: + is_open = state.get("open") + logger.info(f"Got club status open={is_open} via spaceapid") + return is_open + + logger.warning("SpaceAPI response had no state object") + return None