Add message from Bad Request errors to HassioAPIError (#113144)
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
This commit is contained in:
parent
6ecafbcc2c
commit
99eaa07f6f
4 changed files with 47 additions and 10 deletions
|
@ -22,7 +22,7 @@ from homeassistant.const import SERVER_PORT
|
|||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.loader import bind_hass
|
||||
|
||||
from .const import ATTR_DISCOVERY, DOMAIN, X_HASS_SOURCE
|
||||
from .const import ATTR_DISCOVERY, ATTR_MESSAGE, ATTR_RESULT, DOMAIN, X_HASS_SOURCE
|
||||
|
||||
_P = ParamSpec("_P")
|
||||
|
||||
|
@ -577,7 +577,7 @@ class HassIO:
|
|||
raise HassioAPIError()
|
||||
|
||||
try:
|
||||
request = await self.websession.request(
|
||||
response = await self.websession.request(
|
||||
method,
|
||||
joined_url,
|
||||
json=payload,
|
||||
|
@ -590,14 +590,23 @@ class HassIO:
|
|||
timeout=aiohttp.ClientTimeout(total=timeout),
|
||||
)
|
||||
|
||||
if request.status != HTTPStatus.OK:
|
||||
_LOGGER.error("%s return code %d", command, request.status)
|
||||
if response.status != HTTPStatus.OK:
|
||||
error = await response.json(encoding="utf-8")
|
||||
if error.get(ATTR_RESULT) == "error":
|
||||
raise HassioAPIError(error.get(ATTR_MESSAGE))
|
||||
|
||||
_LOGGER.error(
|
||||
"Request to %s method %s returned with code %d",
|
||||
command,
|
||||
method,
|
||||
response.status,
|
||||
)
|
||||
raise HassioAPIError()
|
||||
|
||||
if return_text:
|
||||
return await request.text(encoding="utf-8")
|
||||
return await response.text(encoding="utf-8")
|
||||
|
||||
return await request.json(encoding="utf-8")
|
||||
return await response.json(encoding="utf-8")
|
||||
|
||||
except TimeoutError:
|
||||
_LOGGER.error("Timeout on %s request", command)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue