Code source de henrri_connect.revenues.synchro
"""
Sous-client pour les endpoints /v1/revenues.
Classes:
- ``henrri_connect.revenues.synchro.SyncRevenuesClient``
Accès synchrone aux endpoints revenus.
Notes:
- Utiliser de préférence l'objet ``henrri_connect.SyncHenrriClient`` pour acceder aux endpoints.
"""
from __future__ import annotations
from typing import TYPE_CHECKING
from ..models import MonthlyRevenueStatistics, RevenueStatistics
if TYPE_CHECKING:
from ..connect import SyncHenrriClient
REVENUES_ENDPOINT = "/v1/revenues"
[docs]
class SyncRevenuesClient:
"""
Accès synchrone aux statistiques de revenus.
Parameters:
- ``client`` (SyncHenrriClient) : 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: SyncHenrriClient) -> None:
self._c = client
[docs]
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 = self._c.request("GET", f"{REVENUES_ENDPOINT}/{year}")
return RevenueStatistics.model_validate(resp.json())
[docs]
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 = self._c.request("GET", f"{REVENUES_ENDPOINT}/{year}/months")
return [MonthlyRevenueStatistics.model_validate(item) for item in resp.json()]