finalsa-common-http-client 0.1.1__tar.gz → 0.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: finalsa-common-http-client
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: HTTP client library for common data types used in business applications
5
5
  Project-URL: Homepage, https://github.com/finalsa/finalsa-http-client
6
6
  Project-URL: Documentation, https://github.com/finalsa/finalsa-http-client#readme
@@ -77,9 +77,9 @@ def parse_params(params: Mapping[str, Any] | None ) -> dict[str, str | int | flo
77
77
  if value is not None:
78
78
  result[key] = value
79
79
  if isinstance(value, dict):
80
- result[key] = dumps(value)
80
+ result[key] = dumps(value).decode('utf-8')
81
81
  if isinstance(value, list):
82
- result[key] = dumps(value)
82
+ result[key] = dumps(value).decode('utf-8')
83
83
  return result
84
84
 
85
85
 
@@ -124,8 +124,7 @@ class BaseAsyncHttpClient:
124
124
  )
125
125
  merged_headers = shared.merge_headers(self._default_headers, headers)
126
126
  request_timeout = self._normalize_timeout(timeout) or self._timeout
127
- self._logger.info(f"{method.upper()} request to {resolved_url}", extra={
128
- "headers": merged_headers, "timeout": request_timeout, "params": params})
127
+ self._logger.info(f"{method.upper()} request to {resolved_url}", extra={"timeout": request_timeout, "params": params})
129
128
  start_time = time.time()
130
129
  response = await session.request(
131
130
  method.upper(),
@@ -181,7 +180,11 @@ class BaseAsyncHttpClient:
181
180
  return self._session
182
181
 
183
182
  async def get_paginated(self, path: str, pagination_request: PaginationRequest, response_model: Type[BaseModel], **kwargs: Any) -> PaginationResponse[Type[BaseModel]]:
184
- response = await self.get(path, params=pagination_request.model_dump(), **kwargs)
183
+ pagination_request_dict = pagination_request.model_dump()
184
+ if 'exclusive_start_key' in pagination_request_dict:
185
+ pagination_request_dict['from'] = pagination_request_dict['exclusive_start_key']
186
+ pagination_request_dict.pop('exclusive_start_key')
187
+ response = await self.get(path, params=pagination_request_dict, **kwargs)
185
188
  data = await response.json()
186
189
  items = [response_model.model_validate_json(
187
190
  item) for item in data["items"]]
@@ -106,7 +106,7 @@ class BaseSyncHttpClient:
106
106
  request_timeout = timeout if timeout is not None else self._timeout
107
107
  try:
108
108
  self._logger.info(f"{method.upper()} request to {resolved_url}", extra={
109
- "headers": merged_headers, "timeout": request_timeout, "params": params})
109
+ "timeout": request_timeout, "params": params})
110
110
  start_time = time.time()
111
111
  response = session.request(
112
112
  method.upper(),
@@ -128,12 +128,12 @@ class BaseSyncHttpClient:
128
128
  except requests.RequestException as e:
129
129
  if e.response is not None and "Content-Type" in e.response.headers and e.response.headers["Content-Type"] == "application/json":
130
130
  data = e.response.json()
131
- self._logger.error(f"Received response with status {e.response.status_code}", extra={
132
- "status": e.response.status_code, "headers": e.response.headers, "data": data})
131
+ self._logger.error(f"Response error with status {e.response.status_code}", extra={
132
+ "status": e.response.status_code, "body": data})
133
133
  shared.raise_for_response(data, e.response.status_code)
134
134
 
135
- self._logger.error(f"Received response with status {e.response.status_code}", extra={
136
- "status": e.response.status_code, "headers": e.response.headers})
135
+ self._logger.error(f"Response error with status {e.response.status_code}", extra={
136
+ "status": e.response.status_code})
137
137
  raise e
138
138
 
139
139
  def get(self, path: str, **kwargs: Any) -> requests.Response:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "finalsa-common-http-client"
3
- version = "0.1.1"
3
+ version = "0.1.3"
4
4
  description = "HTTP client library for common data types used in business applications"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"