lsrestclient 3.0.1__tar.gz → 3.1.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lsrestclient
3
- Version: 3.0.1
3
+ Version: 3.1.0
4
4
  Summary: REST Api Client
5
5
  Author: mba
6
6
  Author-email: bartel@electronic-shop.lu
@@ -63,12 +63,21 @@ class LsRestClient(Session):
63
63
  self,
64
64
  base_url: str = None,
65
65
  name: str = "default",
66
+ headers: dict = None,
67
+ ignore_bearer_token: bool = False,
66
68
  ) -> None:
67
69
  """Class representing a REST client for JSON API."""
68
70
 
69
71
  self._mocks = {}
70
72
  self.base_url = base_url
73
+ self.ignore_bearer_token = ignore_bearer_token
71
74
  self.base_headers = {"content-type": "application/json"}
75
+
76
+ with bearer_token_context() as bearer_token:
77
+ bearer_headers = {"Authorization": f"Bearer {bearer_token}"} if bearer_token is not None else {}
78
+ self.base_headers.update(bearer_headers)
79
+ if headers is not None:
80
+ self.base_headers.update(headers)
72
81
  self.base_kwargs = {}
73
82
  self.name = name
74
83
  super().__init__()
@@ -162,9 +171,12 @@ class LsRestClient(Session):
162
171
  Note: This method raises a `ConnectionError` if a connection error occurs during the request.
163
172
  """
164
173
  # apply base_headers
165
-
166
174
  with bearer_token_context() as bearer_token:
167
- bearer_headers = {"Authorization": f"Bearer {bearer_token}"} if bearer_token is not None else {}
175
+ bearer_headers = (
176
+ {"Authorization": f"Bearer {bearer_token}"}
177
+ if bearer_token is not None and not self.ignore_bearer_token
178
+ else {}
179
+ )
168
180
 
169
181
  headers = self.base_headers | bearer_headers | kwargs.get("headers", {})
170
182
 
@@ -6,6 +6,7 @@ import pydash
6
6
  from requests import Response
7
7
  from requests.structures import CaseInsensitiveDict
8
8
 
9
+
9
10
  @dataclass
10
11
  class LsRestClientResponse:
11
12
  """
@@ -19,7 +20,7 @@ class LsRestClientResponse:
19
20
  _json: Optional[dict] = None
20
21
 
21
22
  def json(self):
22
- if self._json is None:
23
+ if self._json is None and self.content != "":
23
24
  self._json = lsjsonclasses.LSoftJSONDecoder.loads(self.content)
24
25
  return self._json
25
26
 
@@ -37,7 +38,7 @@ class LsRestClientResponse:
37
38
  encoding = pydash.get(response, "encoding", None)
38
39
  headers = pydash.get(response, "headers", None)
39
40
  content_type = headers.get("Content-Type", None)
40
- if content_type == 'application/pdf':
41
+ if content_type == "application/pdf":
41
42
  content = response.content
42
43
  else:
43
44
  content = response.content.decode("utf8" if encoding is None else encoding)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "lsrestclient"
3
- version = "3.0.1"
3
+ version = "3.1.0"
4
4
  description = "REST Api Client"
5
5
  authors = ["mba <bartel@electronic-shop.lu>"]
6
6
  readme = "README.md"
File without changes