Use correct template parameter in Rest template rendering (#61269)

This commit is contained in:
Paulus Schoutsen 2021-12-08 12:19:22 -08:00 committed by GitHub
parent 7215244c17
commit 3223332c1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 10 deletions

View File

@ -52,8 +52,8 @@ class RestData:
self._hass, verify_ssl=self._verify_ssl
)
rendered_headers = render_templates(self._headers)
rendered_params = render_templates(self._params)
rendered_headers = render_templates(self._headers, False)
rendered_params = render_templates(self._params, True)
_LOGGER.debug("Updating from %s", self._resource)
try:

View File

@ -207,8 +207,8 @@ class RestSwitch(SwitchEntity):
"""Send a state update to the device."""
websession = async_get_clientsession(self.hass, self._verify_ssl)
rendered_headers = render_templates(self._headers)
rendered_params = render_templates(self._params)
rendered_headers = render_templates(self._headers, False)
rendered_params = render_templates(self._params, True)
async with async_timeout.timeout(self._timeout):
req = await getattr(websession, self._method)(
@ -233,8 +233,8 @@ class RestSwitch(SwitchEntity):
"""Get the latest data from REST API and update the state."""
websession = async_get_clientsession(hass, self._verify_ssl)
rendered_headers = render_templates(self._headers)
rendered_params = render_templates(self._params)
rendered_headers = render_templates(self._headers, False)
rendered_params = render_templates(self._params, True)
async with async_timeout.timeout(self._timeout):
req = await websession.get(

View File

@ -15,13 +15,13 @@ def inject_hass_in_templates_list(
tpl.hass = hass
def render_templates(tpl_dict: dict[str, Template] | None):
def render_templates(tpl_dict: dict[str, Template] | None, parse_result: bool):
"""Render a dict of templates."""
if tpl_dict is None:
return None
rendered_items = {}
for item_name, template_header in tpl_dict.items():
if (value := template_header.async_render()) is not None:
rendered_items[item_name] = str(value)
for item_name, template in tpl_dict.items():
if (value := template.async_render(parse_result=parse_result)) is not None:
rendered_items[item_name] = value
return rendered_items