Use _get_reauth_entry in dormakaba_dkey config flow (#127392)

* Use _get_reauth_entry in dormakaba_dkey config flow

* Adjust
This commit is contained in:
epenet 2024-10-03 12:18:15 +02:00 committed by GitHub
parent c2c48bbc9c
commit c02a3371d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,7 +15,12 @@ from homeassistant.components.bluetooth import (
async_discovered_service_info, async_discovered_service_info,
async_last_service_info, async_last_service_info,
) )
from homeassistant.config_entries import ConfigEntry, ConfigFlow, ConfigFlowResult from homeassistant.config_entries import (
SOURCE_REAUTH,
ConfigEntry,
ConfigFlow,
ConfigFlowResult,
)
from homeassistant.const import CONF_ADDRESS from homeassistant.const import CONF_ADDRESS
from .const import CONF_ASSOCIATION_DATA, DOMAIN from .const import CONF_ASSOCIATION_DATA, DOMAIN
@ -34,7 +39,7 @@ class DormkabaConfigFlow(ConfigFlow, domain=DOMAIN):
VERSION = 1 VERSION = 1
_reauth_entry: ConfigEntry | None = None _reauth_entry: ConfigEntry
def __init__(self) -> None: def __init__(self) -> None:
"""Initialize the config flow.""" """Initialize the config flow."""
@ -121,9 +126,7 @@ class DormkabaConfigFlow(ConfigFlow, domain=DOMAIN):
self, entry_data: Mapping[str, Any] self, entry_data: Mapping[str, Any]
) -> ConfigFlowResult: ) -> ConfigFlowResult:
"""Handle reauthorization request.""" """Handle reauthorization request."""
self._reauth_entry = self.hass.config_entries.async_get_entry( self._reauth_entry = self._get_reauth_entry()
self.context["entry_id"]
)
return await self.async_step_reauth_confirm() return await self.async_step_reauth_confirm()
async def async_step_reauth_confirm( async def async_step_reauth_confirm(
@ -131,13 +134,11 @@ class DormkabaConfigFlow(ConfigFlow, domain=DOMAIN):
) -> ConfigFlowResult: ) -> ConfigFlowResult:
"""Handle reauthorization flow.""" """Handle reauthorization flow."""
errors = {} errors = {}
reauth_entry = self._reauth_entry
assert reauth_entry is not None
if user_input is not None: if user_input is not None:
if ( if (
discovery_info := async_last_service_info( discovery_info := async_last_service_info(
self.hass, reauth_entry.data[CONF_ADDRESS], True self.hass, self._reauth_entry.data[CONF_ADDRESS], True
) )
) is None: ) is None:
errors = {"base": "no_longer_in_range"} errors = {"base": "no_longer_in_range"}
@ -183,9 +184,11 @@ class DormkabaConfigFlow(ConfigFlow, domain=DOMAIN):
CONF_ADDRESS: self._discovery_info.device.address, CONF_ADDRESS: self._discovery_info.device.address,
CONF_ASSOCIATION_DATA: association_data.to_json(), CONF_ASSOCIATION_DATA: association_data.to_json(),
} }
if reauth_entry := self._reauth_entry: if self.source == SOURCE_REAUTH:
self.hass.config_entries.async_update_entry(reauth_entry, data=data) self.hass.config_entries.async_update_entry(
await self.hass.config_entries.async_reload(reauth_entry.entry_id) self._reauth_entry, data=data
)
await self.hass.config_entries.async_reload(self._reauth_entry.entry_id)
return self.async_abort(reason="reauth_successful") return self.async_abort(reason="reauth_successful")
return self.async_create_entry( return self.async_create_entry(