producteca 2.0.40__tar.gz → 2.0.42__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.40 → producteca-2.0.42}/PKG-INFO +1 -1
  2. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/products.py +21 -22
  3. {producteca-2.0.40 → producteca-2.0.42}/pyproject.toml +1 -1
  4. {producteca-2.0.40 → producteca-2.0.42}/LICENSE +0 -0
  5. {producteca-2.0.40 → producteca-2.0.42}/README.md +0 -0
  6. {producteca-2.0.40 → producteca-2.0.42}/producteca/__init__.py +0 -0
  7. {producteca-2.0.40 → producteca-2.0.42}/producteca/abstract/__init__.py +0 -0
  8. {producteca-2.0.40 → producteca-2.0.42}/producteca/abstract/abstract_dataclass.py +0 -0
  9. {producteca-2.0.40 → producteca-2.0.42}/producteca/client.py +0 -0
  10. {producteca-2.0.40 → producteca-2.0.42}/producteca/config/__init__.py +0 -0
  11. {producteca-2.0.40 → producteca-2.0.42}/producteca/config/config.py +0 -0
  12. {producteca-2.0.40 → producteca-2.0.42}/producteca/payments/__init__.py +0 -0
  13. {producteca-2.0.40 → producteca-2.0.42}/producteca/payments/payments.py +0 -0
  14. {producteca-2.0.40 → producteca-2.0.42}/producteca/payments/tests/__init__.py +0 -0
  15. {producteca-2.0.40 → producteca-2.0.42}/producteca/payments/tests/test_payments.py +0 -0
  16. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/__init__.py +0 -0
  17. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/search_products.py +0 -0
  18. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/tests/__init__.py +0 -0
  19. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/tests/test_products.py +0 -0
  20. {producteca-2.0.40 → producteca-2.0.42}/producteca/products/tests/test_search_products.py +0 -0
  21. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/__init__.py +0 -0
  22. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/sales_orders.py +0 -0
  23. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/search_sale_orders.py +0 -0
  24. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/tests/__init__.py +0 -0
  25. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/tests/search.json +0 -0
  26. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/tests/test_sales_orders.py +0 -0
  27. {producteca-2.0.40 → producteca-2.0.42}/producteca/sales_orders/tests/test_search_so.py +0 -0
  28. {producteca-2.0.40 → producteca-2.0.42}/producteca/shipments/__init__.py +0 -0
  29. {producteca-2.0.40 → producteca-2.0.42}/producteca/shipments/shipment.py +0 -0
  30. {producteca-2.0.40 → producteca-2.0.42}/producteca/shipments/tests/__init__.py +0 -0
  31. {producteca-2.0.40 → producteca-2.0.42}/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.40
3
+ Version: 2.0.42
4
4
  Summary:
5
5
  Author: Chroma Agency, Matias Rivera
6
6
  Author-email: mrivera@chroma.agency
@@ -152,7 +152,7 @@ class ProductVariationBase(BaseModel):
152
152
 
153
153
  class ProductVariation(ProductVariationBase):
154
154
  category: Optional[str] = Field(default=None)
155
- name: str
155
+ name: Optional[str] = None
156
156
 
157
157
 
158
158
  class Shipping(BaseModel):
@@ -266,31 +266,30 @@ class ProductService(BaseService):
266
266
  raise Exception(f"Error getting product {product_variation.sku} - {product_variation.code}\n {response.text}")
267
267
  if response.status_code == 204:
268
268
  raise Exception("Status code is 204, meaning nothing was updated or created")
269
+
270
+ _logger.info(f"response text: {response.text}")
269
271
  response_data = response.json()
270
- try:
271
- return Product(**response_data)
272
- except ValidationError:
273
- pass
272
+ _logger.debug(f"Response data: {response_data}")
274
273
  if isinstance(response_data, list):
275
274
  res = ListedSynchronizeResponse(results=response_data)
276
- 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:
277
276
  raise Exception(f"Errored while updating {res.results[0].error_context} {res.model_dump_json()}")
278
- else:
279
- return res.results[0]
280
- else:
281
- try:
282
- sync_resp = SynchronizeResponse(**response_data)
283
- if sync_resp.error_context:
284
- raise Exception(f"Errored while updating {sync_resp.error_context} - {sync_resp.model_dump_json()}")
285
- else:
286
- return sync_resp
287
- except ValidationError:
288
- try:
289
- error_res = ErrorReason(**response_data)
290
- raise Exception(f"Errored with the following message {error_res.message} - {error_res.model_dump_json()}")
291
- except ValidationError:
292
- pass
293
- raise Exception(f"Unhandled error, check response {response.text}")
277
+ return res.results[0] if res.results else None
278
+
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}")
294
293
 
295
294
  def get(self, product_id: int) -> "ProductService":
296
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.40"
3
+ version = "2.0.42"
4
4
  description = ""
5
5
  authors = ["Chroma Agency, Matias Rivera <mrivera@chroma.agency>"]
6
6
  readme = "README.md"
File without changes
File without changes