Use JSON error messages on response with error status from UPS

Closes #13341
(grafted from eb0d39161aa9b52dd593258b7cda2e517dfdf36b)

--HG--
branch : 6.0
This commit is contained in:
Cédric Krier
2024-06-17 10:50:26 +02:00
parent 890c754a72
commit e6ecc665af
+8 -4
View File
@@ -182,15 +182,19 @@ class CreateShippingUPS(Wizard):
try:
while nb_tries < 5 and response is None:
try:
req = requests.post(api_url, json=shipment_request)
response = requests.post(api_url, json=shipment_request)
except ssl.SSLError as e:
error_message = e.reason
nb_tries += 1
continue
req.raise_for_status()
response = req.json()
response.raise_for_status()
response = response.json()
except requests.HTTPError as e:
error_message = e.args[0]
try:
errors = e.response.json()['response']['errors']
error_message = "\n".join(m['message'] for m in errors)
except (requests.JSONDecodeError, TypeError, KeyError):
error_message = e.args[0]
if error_message:
raise UPSError(