Fix minut point updating frozen config entry data (#33148)

* Fix minut point updating frozen config entry data

* Update webhooks handling for configuration entry
This commit is contained in:
Franck Nijhof 2020-03-24 01:20:39 +01:00 committed by GitHub
parent 6180f7bd64
commit 2d002f3ef6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -75,8 +75,9 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
def token_saver(token): def token_saver(token):
_LOGGER.debug("Saving updated token") _LOGGER.debug("Saving updated token")
entry.data[CONF_TOKEN] = token hass.config_entries.async_update_entry(
hass.config_entries.async_update_entry(entry, data={**entry.data}) entry, data={**entry.data, CONF_TOKEN: token}
)
# Force token update. # Force token update.
entry.data[CONF_TOKEN]["expires_in"] = -1 entry.data[CONF_TOKEN]["expires_in"] = -1
@ -105,12 +106,18 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
async def async_setup_webhook(hass: HomeAssistantType, entry: ConfigEntry, session): async def async_setup_webhook(hass: HomeAssistantType, entry: ConfigEntry, session):
"""Set up a webhook to handle binary sensor events.""" """Set up a webhook to handle binary sensor events."""
if CONF_WEBHOOK_ID not in entry.data: if CONF_WEBHOOK_ID not in entry.data:
entry.data[CONF_WEBHOOK_ID] = hass.components.webhook.async_generate_id() webhook_id = hass.components.webhook.async_generate_id()
entry.data[CONF_WEBHOOK_URL] = hass.components.webhook.async_generate_url( webhook_url = hass.components.webhook.async_generate_url(webhook_id)
entry.data[CONF_WEBHOOK_ID] _LOGGER.info("Registering new webhook at: %s", webhook_url)
hass.config_entries.async_update_entry(
entry,
data={
**entry.data,
CONF_WEBHOOK_ID: webhook_id,
CONF_WEBHOOK_URL: webhook_url,
},
) )
_LOGGER.info("Registering new webhook at: %s", entry.data[CONF_WEBHOOK_URL])
hass.config_entries.async_update_entry(entry, data={**entry.data})
await hass.async_add_executor_job( await hass.async_add_executor_job(
session.update_webhook, session.update_webhook,
entry.data[CONF_WEBHOOK_URL], entry.data[CONF_WEBHOOK_URL],