Skip to content

Commit 166f431

Browse files
committed
fix(#258): stop calling .json() on parsed cleaning/filter reset responses
Signed-off-by: Sai Asish Y <say.apm35@gmail.com>
1 parent 3ba89d0 commit 166f431

1 file changed

Lines changed: 6 additions & 28 deletions

File tree

  • custom_components/petlibro

custom_components/petlibro/api.py

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,20 +1316,9 @@ async def set_cleaning_reset(self, serial: str) -> JSON:
13161316
"timeout": 5000
13171317
})
13181318

1319-
# Check if response is already parsed (since response is an integer here)
1320-
if isinstance(response, int):
1321-
_LOGGER.debug(f"Machine cleaning reset set successfully, returned code: {response}")
1322-
return response
1323-
1324-
# If response is a dictionary (JSON), handle it
1325-
response_data = await response.json()
1326-
_LOGGER.debug(f"Machine cleaning reset response data: {response_data}")
1327-
1328-
# Check if the response indicates success
1329-
if response.status != 200 or response_data.get("code") != 0:
1330-
raise PetLibroAPIError(f"Failed to trigger machine cleaning reset: {response_data.get('msg')}")
1331-
1332-
return response_data
1319+
# session.post already returns the parsed "data" payload and raises on a non-zero code
1320+
_LOGGER.debug(f"Machine cleaning reset set successfully, response data: {response}")
1321+
return response
13331322

13341323
except aiohttp.ClientError as err:
13351324
_LOGGER.error(f"Failed to trigger machine cleaning reset for device {serial}: {err}")
@@ -1350,20 +1339,9 @@ async def set_filter_reset(self, serial: str) -> JSON:
13501339
"timeout": 5000
13511340
})
13521341

1353-
# Check if response is already parsed (since response is an integer here)
1354-
if isinstance(response, int):
1355-
_LOGGER.debug(f"Filter reset set successfully, returned code: {response}")
1356-
return response
1357-
1358-
# If response is a dictionary (JSON), handle it
1359-
response_data = await response.json()
1360-
_LOGGER.debug(f"Machine cleaning reset response data: {response_data}")
1361-
1362-
# Check if the response indicates success
1363-
if response.status != 200 or response_data.get("code") != 0:
1364-
raise PetLibroAPIError(f"Failed to trigger machine cleaning reset: {response_data.get('msg')}")
1365-
1366-
return response_data
1342+
# session.post already returns the parsed "data" payload and raises on a non-zero code
1343+
_LOGGER.debug(f"Filter reset set successfully, response data: {response}")
1344+
return response
13671345

13681346
except aiohttp.ClientError as err:
13691347
_LOGGER.error(f"Failed to trigger machine cleaning reset for device {serial}: {err}")

0 commit comments

Comments
 (0)