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

1""" 

2Sous-client pour les endpoints /v1/itemcategories. 

3 

4Classes: 

5- ``henrri_connect.item_categories.synchro.SyncItemCategoriesClient`` 

6 Accès synchrone aux endpoints categories d'articles. 

7 

8Notes: 

9- Utiliser de préférence l'objet ``henrri_connect.SyncHenrriClient`` pour acceder aux endpoints. 

10""" 

11 

12from __future__ import annotations 

13 

14from typing import TYPE_CHECKING 

15 

16from ..models import ItemCategory, PagedListResponse, ItemCategoryRequest 

17from ..utils import clean 

18 

19if TYPE_CHECKING: 

20 from ..connect import SyncHenrriClient 

21 

22ITEMCATEGORIES_ENDPOINT = "/v1/itemcategories" 

23 

24 

25class SyncItemCategoriesClient: 

26 """ 

27 Accès synchrone aux catégories d'articles. 

28 

29 Arguments 

30 - ``client`` : Objet ``henrri_connect.SyncHenrriClient`` pour acceder aux endpoints. 

31 

32 Methodes 

33 - ``list_item_categories`` : Liste les catégories d'articles avec pagination. 

34 """ 

35 

36 def __init__(self, client: SyncHenrriClient) -> None: 

37 self._c = client 

38 

39 def list_item_categories( 

40 self, 

41 *, 

42 request: ItemCategoryRequest, 

43 ) -> PagedListResponse[ItemCategory]: 

44 """ 

45 Liste les catégories d'articles avec pagination. 

46 

47 Arguments 

48 - ``request`` (ItemCategoryRequest) : Paramètres de recherche. 

49 

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())