producteca 2.0.39__tar.gz → 2.0.41__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.

Potentially problematic release.


This version of producteca might be problematic. Click here for more details.

Files changed (31) hide show
  1. {producteca-2.0.39 → producteca-2.0.41}/PKG-INFO +1 -1
  2. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/products.py +23 -25
  3. {producteca-2.0.39 → producteca-2.0.41}/pyproject.toml +1 -1
  4. {producteca-2.0.39 → producteca-2.0.41}/LICENSE +0 -0
  5. {producteca-2.0.39 → producteca-2.0.41}/README.md +0 -0
  6. {producteca-2.0.39 → producteca-2.0.41}/producteca/__init__.py +0 -0
  7. {producteca-2.0.39 → producteca-2.0.41}/producteca/abstract/__init__.py +0 -0
  8. {producteca-2.0.39 → producteca-2.0.41}/producteca/abstract/abstract_dataclass.py +0 -0
  9. {producteca-2.0.39 → producteca-2.0.41}/producteca/client.py +0 -0
  10. {producteca-2.0.39 → producteca-2.0.41}/producteca/config/__init__.py +0 -0
  11. {producteca-2.0.39 → producteca-2.0.41}/producteca/config/config.py +0 -0
  12. {producteca-2.0.39 → producteca-2.0.41}/producteca/payments/__init__.py +0 -0
  13. {producteca-2.0.39 → producteca-2.0.41}/producteca/payments/payments.py +0 -0
  14. {producteca-2.0.39 → producteca-2.0.41}/producteca/payments/tests/__init__.py +0 -0
  15. {producteca-2.0.39 → producteca-2.0.41}/producteca/payments/tests/test_payments.py +0 -0
  16. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/__init__.py +0 -0
  17. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/search_products.py +0 -0
  18. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/tests/__init__.py +0 -0
  19. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/tests/test_products.py +0 -0
  20. {producteca-2.0.39 → producteca-2.0.41}/producteca/products/tests/test_search_products.py +0 -0
  21. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/__init__.py +0 -0
  22. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/sales_orders.py +0 -0
  23. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/search_sale_orders.py +0 -0
  24. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/tests/__init__.py +0 -0
  25. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/tests/search.json +0 -0
  26. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/tests/test_sales_orders.py +0 -0
  27. {producteca-2.0.39 → producteca-2.0.41}/producteca/sales_orders/tests/test_search_so.py +0 -0
  28. {producteca-2.0.39 → producteca-2.0.41}/producteca/shipments/__init__.py +0 -0
  29. {producteca-2.0.39 → producteca-2.0.41}/producteca/shipments/shipment.py +0 -0
  30. {producteca-2.0.39 → producteca-2.0.41}/producteca/shipments/tests/__init__.py +0 -0
  31. {producteca-2.0.39 → producteca-2.0.41}/producteca/shipments/tests/test_shipment.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: producteca
3
- Version: 2.0.39
3
+ Version: 2.0.41
4
4
  Summary:
5
5
  Author: Chroma Agency, Matias Rivera
6
6
  Author-email: mrivera@chroma.agency
@@ -262,36 +262,34 @@ class ProductService(BaseService):
262
262
  raise Exception("Sku or code should be provided to update the product")
263
263
  data = product_variation.model_dump(by_alias=True, exclude_none=True)
264
264
  response = requests.post(endpoint_url, json=data, headers=headers)
265
+ if not response.ok:
266
+ raise Exception(f"Error getting product {product_variation.sku} - {product_variation.code}\n {response.text}")
267
+ if response.status_code == 204:
268
+ raise Exception("Status code is 204, meaning nothing was updated or created")
269
+
270
+ _logger.info(f"response text: {response.text}")
265
271
  response_data = response.json()
266
- try:
267
- return Product(**response_data)
268
- except ValidationError:
269
- pass
272
+ _logger.debug(f"Response data: {response_data}")
270
273
  if isinstance(response_data, list):
271
274
  res = ListedSynchronizeResponse(results=response_data)
272
- if any([r.error_context for r in res.results]):
275
+ if res.results and hasattr(res.results[0], 'error_context') and res.results[0].error_context:
273
276
  raise Exception(f"Errored while updating {res.results[0].error_context} {res.model_dump_json()}")
274
- else:
275
- return res.results[0]
276
- else:
277
- try:
278
- sync_resp = SynchronizeResponse(**response_data)
279
- if sync_resp.error_context:
280
- raise Exception(f"Errored while updating {sync_resp.error_context} - {sync_resp.model_dump_json()}")
281
- else:
282
- return sync_resp
283
- except ValidationError:
284
- try:
285
- error_res = ErrorReason(**response_data)
286
- raise Exception(f"Errored with the following message {error_res.message} - {error_res.model_dump_json()}")
287
- except ValidationError:
288
- pass
277
+ return res.results[0] if res.results else None
289
278
 
290
- if not response.ok:
291
- raise Exception(f"Error getting product {product_variation.sku} - {product_variation.code}\n {response.text}")
292
- if response.status_code == 204:
293
- raise Exception("Status code is 204, meaning nothing was updated or created")
294
- raise Exception(f"Unhandled error, check response {response.text}")
279
+ if isinstance(response_data, dict) and 'name' in response_data:
280
+ return Product(**response_data)
281
+
282
+ if isinstance(response_data, dict) and any(key in response_data for key in ['product', 'variation', 'statusCode']):
283
+ sync_resp = SynchronizeResponse(**response_data)
284
+ if sync_resp.error_context:
285
+ raise Exception(f"Errored while updating {sync_resp.error_context} - {sync_resp.model_dump_json()}")
286
+ return sync_resp
287
+
288
+ if isinstance(response_data, dict) and 'message' in response_data:
289
+ error_res = ErrorReason(**response_data)
290
+ raise Exception(f"Errored with the following message {error_res.message} - {error_res.model_dump_json()}")
291
+
292
+ raise Exception(f"Unhandled response format, check response {response.text}")
295
293
 
296
294
  def get(self, product_id: int) -> "ProductService":
297
295
  endpoint_url = self.config.get_endpoint(f'{self.endpoint}/{product_id}')
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "producteca"
3
- version = "2.0.39"
3
+ version = "2.0.41"
4
4
  description = ""
5
5
  authors = ["Chroma Agency, Matias Rivera <mrivera@chroma.agency>"]
6
6
  readme = "README.md"
File without changes
File without changes