Skip to content

Commit 4e1c568

Browse files
authored
Merge pull request #259
headers from response added to exceptions
2 parents 1c0f0c6 + 2657e2c commit 4e1c568

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

sp_api/base/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def _check_response(res) -> ApiResponse:
118118
error = res.json().get('errors', None)
119119
if error:
120120
exception = get_exception_for_code(res.status_code)
121-
raise exception(error)
121+
raise exception(error, headers=res.headers)
122122
return ApiResponse(**res.json(), headers=res.headers)
123123

124124
def _add_marketplaces(self, data):

sp_api/base/exceptions.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ class SellingApiException(Exception):
1111
"""
1212
code = 999
1313

14-
def __init__(self, error):
14+
def __init__(self, error, headers):
1515
try:
1616
self.message = error[0].get('message')
1717
self.amzn_code = error[0].get('code')
1818
except IndexError:
1919
pass
2020
self.error = error
21+
self.headers = headers
2122

2223

2324
class SellingApiBadRequestException(SellingApiException):
@@ -26,8 +27,8 @@ class SellingApiBadRequestException(SellingApiException):
2627
"""
2728
code = 400
2829

29-
def __init__(self, error):
30-
super(SellingApiBadRequestException, self).__init__(error)
30+
def __init__(self, error, headers=None):
31+
super(SellingApiBadRequestException, self).__init__(error, headers)
3132

3233

3334
class SellingApiForbiddenException(SellingApiException):
@@ -36,8 +37,8 @@ class SellingApiForbiddenException(SellingApiException):
3637
"""
3738
code = 403
3839

39-
def __init__(self, error):
40-
super(SellingApiForbiddenException, self).__init__(error)
40+
def __init__(self, error, headers=None):
41+
super(SellingApiForbiddenException, self).__init__(error, headers)
4142

4243

4344
class SellingApiNotFoundException(SellingApiException):
@@ -46,8 +47,8 @@ class SellingApiNotFoundException(SellingApiException):
4647
"""
4748
code = 404
4849

49-
def __init__(self, error):
50-
super(SellingApiNotFoundException, self).__init__(error)
50+
def __init__(self, error, headers=None):
51+
super(SellingApiNotFoundException, self).__init__(error, headers)
5152

5253

5354
class SellingApiRequestThrottledException(SellingApiException):
@@ -56,8 +57,8 @@ class SellingApiRequestThrottledException(SellingApiException):
5657
"""
5758
code = 429
5859

59-
def __init__(self, error):
60-
super(SellingApiRequestThrottledException, self).__init__(error)
60+
def __init__(self, error, headers=None):
61+
super(SellingApiRequestThrottledException, self).__init__(error, headers)
6162

6263

6364
class SellingApiServerException(SellingApiException):
@@ -66,8 +67,8 @@ class SellingApiServerException(SellingApiException):
6667
"""
6768
code = 500
6869

69-
def __init__(self, error):
70-
super(SellingApiServerException, self).__init__(error)
70+
def __init__(self, error, headers=None):
71+
super(SellingApiServerException, self).__init__(error, headers)
7172

7273

7374
class SellingApiTemporarilyUnavailableException(SellingApiException):
@@ -76,8 +77,8 @@ class SellingApiTemporarilyUnavailableException(SellingApiException):
7677
"""
7778
code = 503
7879

79-
def __init__(self, error):
80-
super(SellingApiTemporarilyUnavailableException, self).__init__(error)
80+
def __init__(self, error, headers=None):
81+
super(SellingApiTemporarilyUnavailableException, self).__init__(error, headers)
8182

8283

8384
def get_exception_for_code(code: int):

0 commit comments

Comments
 (0)