Skip to content

Commit 1c57b85

Browse files
committed
Improved _parse method and added TokenError exception if the response status code is 401
1 parent 26e9d70 commit 1c57b85

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

salesforce/client.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import requests
22
from salesforce.decorators import access_token_required
3-
from salesforce.exceptions import UnknownError, BadOAuthTokenError, BadRequestError
3+
from salesforce.exceptions import UnknownError, BadOAuthTokenError, BadRequestError, TokenError
44
from urllib.parse import unquote, urlencode
55

66

@@ -162,16 +162,19 @@ def _request(self, method, url, headers=None, **kwargs):
162162
return self._parse(requests.request(method, url, headers=_headers, **kwargs))
163163

164164
def _parse(self, response):
165-
content_type = response.headers.get('Content-Type', None)
166165
status_code = response.status_code
167-
if status_code == 200 or status_code == 201:
168-
if content_type and 'application/json' in content_type:
169-
return response.json()
170-
return response.text
166+
if 'application/json' in response.headers['Content-Type']:
167+
r = response.json()
168+
else:
169+
r = response.text
170+
if status_code in (200, 201):
171+
return r
171172
if status_code == 204:
172173
return None
173174
if status_code == 400:
174-
raise BadRequestError()
175+
raise BadRequestError(r)
176+
if status_code == 401:
177+
raise TokenError(r)
175178
if status_code == 403:
176-
raise BadOAuthTokenError()
177-
raise UnknownError()
179+
raise BadOAuthTokenError(r)
180+
raise UnknownError(r)

salesforce/exceptions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ class BadOAuthTokenError(BaseError):
1616

1717
class BadRequestError(BaseError):
1818
pass
19+
20+
21+
class TokenError(BaseError):
22+
pass

0 commit comments

Comments
 (0)