producteca 2.0.39__py3-none-any.whl → 2.0.41__py3-none-any.whl

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.

@@ -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
  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
@@ -9,7 +9,7 @@ producteca/payments/payments.py,sha256=ac0X-QC4CGvxs40B_qWv0IepBVpj_nULNSNp8s3v5
9
9
  producteca/payments/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  producteca/payments/tests/test_payments.py,sha256=wutk5zK2xRChTvKyTmi54Y_92PzNtUKZF6xWF298sFY,3032
11
11
  producteca/products/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- producteca/products/products.py,sha256=oITJ_kOyyb-JPQAwrW3UEec2W8OFV5gaGjUIOrNH5jo,12860
12
+ producteca/products/products.py,sha256=GpOa-zNu3gYgf_eQEe_BWGXadRDr0Pr46KuLoNx2FOg,13050
13
13
  producteca/products/search_products.py,sha256=8qKPhwHWq-QzRc3-oZKlMaQQN4Et2iUWm4uxOGWXzFc,6172
14
14
  producteca/products/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  producteca/products/tests/test_products.py,sha256=0Tph7T9D2XTLdTDoIpR2PcLTrvPt6h2LPuKowTXrDgU,5742
@@ -25,8 +25,8 @@ producteca/shipments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
25
25
  producteca/shipments/shipment.py,sha256=YokJRBX1ZbUtZVc4AOAB188rbHFO0_MH5hFv5U9Qpjw,844
26
26
  producteca/shipments/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  producteca/shipments/tests/test_shipment.py,sha256=0edX3WM-t4nbp53r_Lvhtk_Suc2QCnIUQ27I90qSUfE,2512
28
- producteca-2.0.39.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
29
- producteca-2.0.39.dist-info/METADATA,sha256=z1gB8oCtwNgGp84gnoo-RxgVNr3mD0sQhFeMozp2BYQ,3809
30
- producteca-2.0.39.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
31
- producteca-2.0.39.dist-info/entry_points.txt,sha256=BFSDFLbB70p8YVZPiU7HDJdj2VyyLdMVa4ekLQAUAVc,125
32
- producteca-2.0.39.dist-info/RECORD,,
28
+ producteca-2.0.41.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
29
+ producteca-2.0.41.dist-info/METADATA,sha256=PBcXrQmeeIJkv1rG1kbqaerDxBPDFYZH1x1N0XmNtzs,3809
30
+ producteca-2.0.41.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
31
+ producteca-2.0.41.dist-info/entry_points.txt,sha256=BFSDFLbB70p8YVZPiU7HDJdj2VyyLdMVa4ekLQAUAVc,125
32
+ producteca-2.0.41.dist-info/RECORD,,