mirror of
https://github.com/home-assistant/core.git
synced 2026-09-04 04:22:09 +01:00
Use async_get_device_and_config_entry service helper in unifi_access (#180150)
This commit is contained in:
@@ -8,11 +8,7 @@ import voluptuous as vol
|
||||
from homeassistant.const import ATTR_DEVICE_ID
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||
from homeassistant.exceptions import HomeAssistantError, ServiceValidationError
|
||||
from homeassistant.helpers import (
|
||||
config_validation as cv,
|
||||
device_registry as dr,
|
||||
service,
|
||||
)
|
||||
from homeassistant.helpers import config_validation as cv, service
|
||||
|
||||
from .const import (
|
||||
ATTR_INTERVAL,
|
||||
@@ -53,27 +49,14 @@ def _async_get_target(
|
||||
hass: HomeAssistant, call: ServiceCall
|
||||
) -> tuple[UnifiAccessConfigEntry, str]:
|
||||
"""Resolve a service call to a UniFi Access config entry and door ID."""
|
||||
device_id = call.data[ATTR_DEVICE_ID]
|
||||
device, entry = dr.async_get_device_and_config_entry_for_domain(
|
||||
hass, device_id, domain=DOMAIN
|
||||
config_entry: UnifiAccessConfigEntry
|
||||
device, config_entry = service.async_get_device_and_config_entry(
|
||||
hass, DOMAIN, call.data[ATTR_DEVICE_ID]
|
||||
)
|
||||
if device is None:
|
||||
raise ServiceValidationError(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="invalid_target",
|
||||
)
|
||||
|
||||
if entry is not None:
|
||||
config_entry: UnifiAccessConfigEntry = service.async_get_config_entry(
|
||||
hass, DOMAIN, entry.entry_id
|
||||
)
|
||||
coordinator = config_entry.runtime_data
|
||||
for identifier_domain, identifier_value in device.identifiers:
|
||||
if (
|
||||
identifier_domain == DOMAIN
|
||||
and identifier_value in coordinator.data.doors
|
||||
):
|
||||
return config_entry, identifier_value
|
||||
coordinator = config_entry.runtime_data
|
||||
for identifier_domain, identifier_value in device.identifiers:
|
||||
if identifier_domain == DOMAIN and identifier_value in coordinator.data.doors:
|
||||
return config_entry, identifier_value
|
||||
|
||||
raise ServiceValidationError(
|
||||
translation_domain=DOMAIN,
|
||||
|
||||
Reference in New Issue
Block a user