|
3 | 3 | from typing import Optional, Tuple |
4 | 4 | from urllib.parse import urljoin |
5 | 5 |
|
6 | | -import requests |
| 6 | +import httpx |
7 | 7 | from cuenca_validations.errors import ERROR_CODES |
8 | 8 | from cuenca_validations.types import JSONEncoder |
9 | 9 | from cuenca_validations.typing import ( |
10 | 10 | ClientRequestParams, |
11 | 11 | DictStrAny, |
12 | 12 | OptionalDict, |
13 | 13 | ) |
14 | | -from requests import Response |
15 | 14 |
|
16 | 15 | from ..exc import CuencaResponseException |
17 | 16 | from ..jwt import Jwt |
@@ -103,27 +102,32 @@ def request( |
103 | 102 | **kwargs, |
104 | 103 | ) -> bytes: |
105 | 104 | resp = None |
106 | | - with requests.Session() as session: |
107 | | - session.headers = self.headers # type: ignore |
| 105 | + with httpx.Client() as client: |
| 106 | + # Set headers |
| 107 | + headers = self.headers.copy() |
| 108 | + |
| 109 | + # Update JWT token if needed |
108 | 110 | if self.jwt_token: |
109 | 111 | if self.jwt_token.is_expired: |
110 | 112 | self.jwt_token = Jwt.create(self) |
111 | | - self.headers['X-Cuenca-Token'] = self.jwt_token.token |
112 | | - session.headers = self.headers # type: ignore |
113 | | - resp = session.request( # type: ignore |
| 113 | + headers['X-Cuenca-Token'] = self.jwt_token.token |
| 114 | + |
| 115 | + # Make request |
| 116 | + resp = client.request( |
114 | 117 | method=method, |
115 | 118 | url='https://' + self.host + urljoin('/', endpoint), |
116 | 119 | auth=self.auth, |
117 | 120 | json=json.loads(JSONEncoder().encode(data)), |
118 | 121 | params=params, |
| 122 | + headers=headers, |
119 | 123 | **kwargs, |
120 | 124 | ) |
121 | 125 | self._check_response(resp) |
122 | 126 | return resp.content |
123 | 127 |
|
124 | 128 | @staticmethod |
125 | | - def _check_response(response: Response): |
126 | | - if response.ok: |
| 129 | + def _check_response(response: httpx.Response): |
| 130 | + if 200 <= response.status_code < 300: |
127 | 131 | return |
128 | 132 | json = response.json() |
129 | 133 | if 'code' in json: |
|
0 commit comments