Use JSON error messages on response with error status from UPS

Closes #13341
(grafted from eb0d39161aa9b52dd593258b7cda2e517dfdf36b)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier
2024-06-17 10:50:26 +02:00
parent a985230481
commit 545522b57b
+8 -4
View File
@@ -185,17 +185,21 @@ class CreateShippingUPS(Wizard):
try:
while nb_tries < 5 and response is None:
try:
req = requests.post(
response = requests.post(
api_url, json=shipment_request, headers=headers,
timeout=TIMEOUT)
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(