Coverage for src/henrri_connect/item_categories/synchro.py: 100%
12 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 10:54 +0200
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 10:54 +0200
1"""
2Sous-client pour les endpoints /v1/itemcategories.
4Classes:
5- ``henrri_connect.item_categories.synchro.SyncItemCategoriesClient``
6 Accès synchrone aux endpoints categories d'articles.
8Notes:
9- Utiliser de préférence l'objet ``henrri_connect.SyncHenrriClient`` pour acceder aux endpoints.
10"""
12from __future__ import annotations
14from typing import TYPE_CHECKING
16from ..models import ItemCategory, PagedListResponse, ItemCategoryRequest
17from ..utils import clean
19if TYPE_CHECKING:
20 from ..connect import SyncHenrriClient
22ITEMCATEGORIES_ENDPOINT = "/v1/itemcategories"
25class SyncItemCategoriesClient:
26 """
27 Accès synchrone aux catégories d'articles.
29 Arguments
30 - ``client`` : Objet ``henrri_connect.SyncHenrriClient`` pour acceder aux endpoints.
32 Methodes
33 - ``list_item_categories`` : Liste les catégories d'articles avec pagination.
34 """
36 def __init__(self, client: SyncHenrriClient) -> None:
37 self._c = client
39 def list_item_categories(
40 self,
41 *,
42 request: ItemCategoryRequest,
43 ) -> PagedListResponse[ItemCategory]:
44 """
45 Liste les catégories d'articles avec pagination.
47 Arguments
48 - ``request`` (ItemCategoryRequest) : Paramètres de recherche.
50 Returns
51 - ``PagedListResponse[ItemCategory]`` : Liste paginée de catégories d'articles.
52 """
53 params = clean(request.model_dump(by_alias=True))
54 resp = self._c.request("GET", ITEMCATEGORIES_ENDPOINT, params=params)
55 return PagedListResponse[ItemCategory].model_validate(resp.json())