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:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user