Skip to content

Commit

Permalink
Split the runRequest logic in two with generateRequest
Browse files Browse the repository at this point in the history
so that custom subclasses for `BaseRestTool` can easily plug there logic
  • Loading branch information
dulacp committed Mar 26, 2014
1 parent 959f9d0 commit 732df8b
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions mangopaysdk/tools/resttool.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,10 @@ def Request(self, urlMethod, requestType, requestData = None, pagination = None,

return response

def _runRequest(self, urlMethod, pagination, additionalUrlParams):
"""Execute request and check response.
return object Respons data
throws Exception If cURL has error
def _generateRequest(self, urlMethod, pagination, additionalUrlParams):
"""Generate the request object
that will be used in the `_runRequest`
"""

urlToolObj = UrlTool(self._root.Config)
restUrl = urlToolObj.GetRestUrl(urlMethod, self._authRequired, pagination, additionalUrlParams)
fullUrl = urlToolObj.GetFullUrl(restUrl)
Expand All @@ -71,14 +69,28 @@ def _runRequest(self, urlMethod, pagination, additionalUrlParams):
if (self._debugMode): logging.getLogger(__name__).debug('REQUEST: {0} {1}\n DATA: {2}'.format(self._requestType, fullUrl, self._requestData))

if self._requestType == "POST":
response = requests.post(fullUrl, json.dumps(self._requestData), auth = authObj, verify=False, headers=headersJson)
request = requests.Request('POST', fullUrl, data=json.dumps(self._requestData), auth=authObj, headers=headersJson)
elif self._requestType == "GET":
response = requests.get(fullUrl, auth = authObj, verify=False)
request = requests.Request('GET', fullUrl, auth=authObj)
elif self._requestType == "PUT":
response = requests.put(fullUrl, json.dumps(self._requestData), auth = authObj, verify=False, headers=headersJson)
request = requests.Request('PUT', fullUrl, data=json.dumps(self._requestData), auth=authObj, headers=headersJson)
elif self._requestType == "DELETE":
response = requests.delete(fullUrl, auth = authObj, verify=False, headers=headers)

request = requests.Request('DELETE', fullUrl, auth=authObj, headers=headers)

return request

def _runRequest(self, urlMethod, pagination, additionalUrlParams):
"""Execute request and check response.
return object Respons data
throws Exception If cURL has error
"""
request = self._generateRequest(urlMethod, pagination, additionalUrlParams)
prepared_request = request.prepare()

# send the request
session = requests.Session()
response = session.send(prepared_request, verify=False)

if (self._debugMode): logging.getLogger(__name__).debug('RESPONSE: {0}\n {1}\n {2}'.format(response.status_code, response.headers, response.text))

decodedResp = json.loads(response.text) if (response.text != '' and 'application/json' in response.headers['content-type']) else None
Expand Down

0 comments on commit 732df8b

Please sign in to comment.