Skip to content

Commit febb1cd

Browse files
committed
Add BadRequestError Exception
1 parent b571652 commit febb1cd

3 files changed

Lines changed: 12 additions & 3 deletions

File tree

salesforce/client.py

Lines changed: 7 additions & 2 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
3+
from salesforce.exceptions import UnknownError, BadOAuthTokenError, BadRequestError
44
from urllib.parse import unquote, urlencode
55

66

@@ -154,11 +154,16 @@ def _request(self, method, url, headers=None, **kwargs):
154154
return self._parse(requests.request(method, url, headers=_headers, **kwargs))
155155

156156
def _parse(self, response):
157+
content_type = response.headers.get('Content-Type', None)
157158
status_code = response.status_code
158159
if status_code == 200 or status_code == 201:
159-
return response.json()
160+
if content_type and 'application/json' in content_type:
161+
return response.json()
162+
return response.text
160163
if status_code == 204:
161164
return None
165+
if status_code == 400:
166+
raise BadRequestError()
162167
if status_code == 403:
163168
raise BadOAuthTokenError()
164169
raise UnknownError()

salesforce/exceptions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ class AccessTokenRequired(BaseError):
1212

1313
class BadOAuthTokenError(BaseError):
1414
pass
15+
16+
17+
class BadRequestError(BaseError):
18+
pass

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from setuptools import setup
22

33
setup(name='salesforce',
4-
version='0.1',
4+
version='0.2',
55
description='API wrapper for Salesforce written in Python',
66
url='https://github.com/GearPlug/salesforce-python',
77
author='Miguel Ferrer',

0 commit comments

Comments
 (0)