Make sure IQVIA data storage conforms to standards (#57811)

This commit is contained in:
Aaron Bach 2021-10-22 04:11:10 -06:00 committed by GitHub
parent 024c892b2a
commit 5c3d2a5071
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 13 deletions

View file

@ -24,7 +24,6 @@ from homeassistant.helpers.update_coordinator import (
from .const import (
CONF_ZIP_CODE,
DATA_COORDINATOR,
DOMAIN,
LOGGER,
TYPE_ALLERGY_FORECAST,
@ -45,7 +44,7 @@ PLATFORMS = ["sensor"]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up IQVIA as config entry."""
hass.data.setdefault(DOMAIN, {})
coordinators = {}
hass.data[DOMAIN][entry.entry_id] = {}
if not entry.unique_id:
# If the config entry doesn't already have a unique ID, set one:
@ -67,7 +66,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return cast(Dict[str, Any], data)
coordinators = {}
init_data_update_tasks = []
for sensor_type, api_coro in (
(TYPE_ALLERGY_FORECAST, client.allergens.extended),
(TYPE_ALLERGY_INDEX, client.allergens.current),
@ -93,7 +94,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
# API calls fail:
raise ConfigEntryNotReady()
hass.data[DOMAIN].setdefault(DATA_COORDINATOR, {})[entry.entry_id] = coordinators
hass.data[DOMAIN][entry.entry_id] = coordinators
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
return True
@ -103,7 +104,8 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload an OpenUV config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN][DATA_COORDINATOR].pop(entry.entry_id)
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
@ -139,7 +141,7 @@ class IQVIAEntity(CoordinatorEntity):
if self.entity_description.key == TYPE_ALLERGY_FORECAST:
self.async_on_remove(
self.hass.data[DOMAIN][DATA_COORDINATOR][self._entry.entry_id][
self.hass.data[DOMAIN][self._entry.entry_id][
TYPE_ALLERGY_OUTLOOK
].async_add_listener(self._handle_coordinator_update)
)

View file

@ -7,8 +7,6 @@ DOMAIN = "iqvia"
CONF_ZIP_CODE = "zip_code"
DATA_COORDINATOR = "coordinator"
TYPE_ALLERGY_FORECAST = "allergy_average_forecasted"
TYPE_ALLERGY_INDEX = "allergy_index"
TYPE_ALLERGY_OUTLOOK = "allergy_outlook"

View file

@ -18,7 +18,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import IQVIAEntity
from .const import (
DATA_COORDINATOR,
DOMAIN,
TYPE_ALLERGY_FORECAST,
TYPE_ALLERGY_INDEX,
@ -133,7 +132,7 @@ async def async_setup_entry(
"""Set up IQVIA sensors based on a config entry."""
sensors: list[ForecastSensor | IndexSensor] = [
ForecastSensor(
hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id][
hass.data[DOMAIN][entry.entry_id][
API_CATEGORY_MAPPING.get(description.key, description.key)
],
entry,
@ -144,7 +143,7 @@ async def async_setup_entry(
sensors.extend(
[
IndexSensor(
hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id][
hass.data[DOMAIN][entry.entry_id][
API_CATEGORY_MAPPING.get(description.key, description.key)
],
entry,
@ -206,9 +205,9 @@ class ForecastSensor(IQVIAEntity, SensorEntity):
)
if self.entity_description.key == TYPE_ALLERGY_FORECAST:
outlook_coordinator = self.hass.data[DOMAIN][DATA_COORDINATOR][
self._entry.entry_id
][TYPE_ALLERGY_OUTLOOK]
outlook_coordinator = self.hass.data[DOMAIN][self._entry.entry_id][
TYPE_ALLERGY_OUTLOOK
]
if not outlook_coordinator.last_update_success:
return