Code source de henrri_connect.revenues.asynchro

"""
Sous-client pour les endpoints /v1/revenues.

Classes:
- ``henrri_connect.revenues.asynchro.AsyncRevenuesClient``
    Accès asynchrone aux endpoints revenus.

Notes:
- Utiliser de préférence l'objet ``henrri_connect.AsyncHenrriClient`` pour acceder aux endpoints.
"""

from __future__ import annotations

from typing import TYPE_CHECKING

from ..models import MonthlyRevenueStatistics, RevenueStatistics

if TYPE_CHECKING:
    from ..connect import AsyncHenrriClient

REVENUES_ENDPOINT = "/v1/revenues"

[docs] class AsyncRevenuesClient: """ Accès asynchrone aux statistiques de revenus. Parameters: - ``client`` (AsyncHenrriClient) : Client HTTP. Methods: - ``get_annual(self, year: int)`` : Récupère les statistiques de revenus annuelles. - ``get_monthly(self, year: int)`` : Récupère les statistiques de revenus mensuelles pour une année. """ def __init__(self, client: AsyncHenrriClient) -> None: self._c = client
[docs] async def get_annual(self, year: int) -> RevenueStatistics: """ Récupère les statistiques de revenus annuelles. Arguments: - ``year`` (int) : Année de recherche. Returns: - ``RevenueStatistics`` : Statistiques de revenus annuelles. """ resp = await self._c.request("GET", f"{REVENUES_ENDPOINT}/{year}") return RevenueStatistics.model_validate(resp.json())
[docs] async def get_monthly(self, year: int) -> list[MonthlyRevenueStatistics]: """ Récupère les statistiques de revenus mensuelles pour une année. Arguments: - ``year`` (int) : Année de recherche. Returns: - ``list[MonthlyRevenueStatistics]`` : Statistiques de revenus mensuelles. """ resp = await self._c.request("GET", f"{REVENUES_ENDPOINT}/{year}/months") return [MonthlyRevenueStatistics.model_validate(item) for item in resp.json()]