Skip to content

Commit

Permalink
Improved _parse method and added TokenError exception if the response…
Browse files Browse the repository at this point in the history
… status code is 401
  • Loading branch information
ingmferrer committed Feb 15, 2018
1 parent 26e9d70 commit 1c57b85
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
21 changes: 12 additions & 9 deletions salesforce/client.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import requests
from salesforce.decorators import access_token_required
from salesforce.exceptions import UnknownError, BadOAuthTokenError, BadRequestError
from salesforce.exceptions import UnknownError, BadOAuthTokenError, BadRequestError, TokenError
from urllib.parse import unquote, urlencode


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

def _parse(self, response):
content_type = response.headers.get('Content-Type', None)
status_code = response.status_code
if status_code == 200 or status_code == 201:
if content_type and 'application/json' in content_type:
return response.json()
return response.text
if 'application/json' in response.headers['Content-Type']:
r = response.json()
else:
r = response.text
if status_code in (200, 201):
return r
if status_code == 204:
return None
if status_code == 400:
raise BadRequestError()
raise BadRequestError(r)
if status_code == 401:
raise TokenError(r)
if status_code == 403:
raise BadOAuthTokenError()
raise UnknownError()
raise BadOAuthTokenError(r)
raise UnknownError(r)
4 changes: 4 additions & 0 deletions salesforce/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ class BadOAuthTokenError(BaseError):

class BadRequestError(BaseError):
pass


class TokenError(BaseError):
pass

0 comments on commit 1c57b85

Please sign in to comment.