ha-cookcli/custom_components/cookcli/coordinator.py
2026-09-13 17:22:52 +02:00

34 lines
1.1 KiB
Python

"""Coordinator pour l'intégration CookCLI."""
from __future__ import annotations
import logging
from datetime import timedelta
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .api import CookCliApiClient, CookCliApiError, RecipeSummary
from .const import DOMAIN, UPDATE_INTERVAL_MINUTES
_LOGGER = logging.getLogger(__name__)
class CookCliCoordinator(DataUpdateCoordinator[list[RecipeSummary]]):
"""Maintient la liste des recettes à jour."""
def __init__(self, hass: HomeAssistant, client: CookCliApiClient) -> None:
super().__init__(
hass,
_LOGGER,
name=DOMAIN,
update_interval=timedelta(minutes=UPDATE_INTERVAL_MINUTES),
)
self.client = client
async def _async_update_data(self) -> list[RecipeSummary]:
try:
return await self.client.async_list_recipes()
except CookCliApiError as err:
raise UpdateFailed(f"Erreur en récupérant les recettes CookCLI: {err}") from err