Make sure Flu Near You data storage conforms to standards (#57808)

This commit is contained in:
Aaron Bach 2021-10-23 12:18:34 -06:00 committed by GitHub
parent 43abf38d92
commit 583ae3c953
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 17 deletions

View File

@ -15,13 +15,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers import aiohttp_client, config_validation as cv from homeassistant.helpers import aiohttp_client, config_validation as cv
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ( from .const import CATEGORY_CDC_REPORT, CATEGORY_USER_REPORT, DOMAIN, LOGGER
CATEGORY_CDC_REPORT,
CATEGORY_USER_REPORT,
DATA_COORDINATOR,
DOMAIN,
LOGGER,
)
DEFAULT_UPDATE_INTERVAL = timedelta(minutes=30) DEFAULT_UPDATE_INTERVAL = timedelta(minutes=30)
@ -32,8 +26,7 @@ PLATFORMS = ["sensor"]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Flu Near You as config entry.""" """Set up Flu Near You as config entry."""
hass.data.setdefault(DOMAIN, {DATA_COORDINATOR: {}}) hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id] = {}
websession = aiohttp_client.async_get_clientsession(hass) websession = aiohttp_client.async_get_clientsession(hass)
client = Client(session=websession) client = Client(session=websession)
@ -57,11 +50,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return data return data
coordinators = {}
data_init_tasks = [] data_init_tasks = []
for api_category in (CATEGORY_CDC_REPORT, CATEGORY_USER_REPORT): for api_category in (CATEGORY_CDC_REPORT, CATEGORY_USER_REPORT):
coordinator = hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id][ coordinator = coordinators[api_category] = DataUpdateCoordinator(
api_category
] = DataUpdateCoordinator(
hass, hass,
LOGGER, LOGGER,
name=f"{api_category} ({latitude}, {longitude})", name=f"{api_category} ({latitude}, {longitude})",
@ -71,6 +64,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
data_init_tasks.append(coordinator.async_refresh()) data_init_tasks.append(coordinator.async_refresh())
await asyncio.gather(*data_init_tasks) await asyncio.gather(*data_init_tasks)
hass.data[DOMAIN][entry.entry_id] = coordinators
hass.config_entries.async_setup_platforms(entry, PLATFORMS) hass.config_entries.async_setup_platforms(entry, PLATFORMS)
@ -81,6 +75,6 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload an Flu Near You config entry.""" """Unload an Flu Near You config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok: if unload_ok:
hass.data[DOMAIN][DATA_COORDINATOR].pop(entry.entry_id) hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok return unload_ok

View File

@ -4,7 +4,5 @@ import logging
DOMAIN = "flunearyou" DOMAIN = "flunearyou"
LOGGER = logging.getLogger(__package__) LOGGER = logging.getLogger(__package__)
DATA_COORDINATOR = "coordinator"
CATEGORY_CDC_REPORT = "cdc_report" CATEGORY_CDC_REPORT = "cdc_report"
CATEGORY_USER_REPORT = "user_report" CATEGORY_USER_REPORT = "user_report"

View File

@ -24,7 +24,7 @@ from homeassistant.helpers.update_coordinator import (
DataUpdateCoordinator, DataUpdateCoordinator,
) )
from .const import CATEGORY_CDC_REPORT, CATEGORY_USER_REPORT, DATA_COORDINATOR, DOMAIN from .const import CATEGORY_CDC_REPORT, CATEGORY_USER_REPORT, DOMAIN
ATTR_CITY = "city" ATTR_CITY = "city"
ATTR_REPORTED_DATE = "reported_date" ATTR_REPORTED_DATE = "reported_date"
@ -122,7 +122,7 @@ async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None: ) -> None:
"""Set up Flu Near You sensors based on a config entry.""" """Set up Flu Near You sensors based on a config entry."""
coordinators = hass.data[DOMAIN][DATA_COORDINATOR][entry.entry_id] coordinators = hass.data[DOMAIN][entry.entry_id]
sensors: list[CdcSensor | UserSensor] = [ sensors: list[CdcSensor | UserSensor] = [
CdcSensor(coordinators[CATEGORY_CDC_REPORT], entry, description) CdcSensor(coordinators[CATEGORY_CDC_REPORT], entry, description)