Coverage for src/henrri_connect/companies/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/companies. 

3 

4Constantes: 

5- ``COMPANIES_ENDPOINT`` URL de base des endpoints entreprises (/v1/companies). 

6 

7Classes: 

8- ``henrri_connect.companies.synchro.SyncCompaniesClient`` 

9 Accès synchrone aux endpoints entreprises. 

10 

11Notes: 

12- Utiliser de préférence l'objet ``henrri_connect.connect.SyncHenrriClient`` pour acceder 

13aux endpoints. 

14""" 

15 

16from __future__ import annotations 

17 

18from typing import TYPE_CHECKING 

19 

20from ..models import Address, Company 

21 

22if TYPE_CHECKING: 

23 from ..connect import SyncHenrriClient 

24 

25class SyncCompaniesClient: 

26 """ 

27 Accès synchrone aux endpoints entreprises. 

28 

29 Arguments 

30 - ``client`` (SyncHenrriClient) : Client HTTP. 

31 

32 Methodes 

33 - get(self, company_id: int) : Récupère une entreprise par son identifiant. 

34 - get_address(self, company_id: int) : Récupère l'adresse d'une entreprise. 

35 """ 

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

37 self._c = client 

38 

39 def get(self, company_id: int) -> Company: 

40 """ 

41 Récupère une entreprise par son identifiant. 

42 

43 Arguments 

44 - ``company_id`` : Identifiant de l'entreprise. 

45 

46 Returns 

47 - ``henrri_connect.models.Company`` : Entreprise. 

48 """ 

49 resp = self._c.request("GET", f"/v1/companies/{company_id}") 

50 return Company.model_validate(resp.json()) 

51 

52 def get_address(self, company_id: int) -> Address: 

53 """ 

54 Récupère l'adresse d'une entreprise. 

55 

56 Arguments 

57 - ``company_id`` : Identifiant de l'entreprise. 

58 

59 Returns 

60 - ``henrri_connect.models.Address`` : Adresse de l'entreprise. 

61 """ 

62 resp = self._c.request("GET", f"/v1/companies/{company_id}/address") 

63 return Address.model_validate(resp.json())