Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def request_store_as_file(self, path, filepath, method='GET', params=None, type=REST_TYPE):
"""Builds a request, gets a response and decodes it."""
response_binary = self._get_http_client(type).request(path, method, params, ResponseFormat.binary)
if not response_binary:
return response_binary
with io.open(filepath, 'wb') as f:
f.write(response_binary)
return filepath
'GET': lambda: requests.get(url, verify=True, headers=headers, params=params),
'PATCH': lambda: requests.patch(url, verify=True, headers=headers, data=json_serialize(params)),
'POST': lambda: requests.post(url, verify=True, headers=headers, data=json_serialize(params)),
'PUT': lambda: requests.put(url, verify=True, headers=headers, data=json_serialize(params))
}
response = method_switcher.get(method, str(method) + ' is not a supported HTTP method')
if isinstance(response, str):
raise ValueError(response)
response = response()
if response.status_code not in self.__supported_status_codes:
response.raise_for_status()
response_switcher = {
ResponseFormat.text: response.text,
ResponseFormat.binary: response.content
}
return response_switcher.get(format)
def request(self, path, method='GET', params=None, format=ResponseFormat.text):
"""Builds a request and gets a response."""
if params is None:
params = {}
url = urljoin(self.endpoint, path)
headers = {
'Accept': 'application/json',
'Authorization': 'AccessKey ' + self.access_key,
'User-Agent': self.user_agent,
'Content-Type': 'application/json'
}
method_switcher = {
'DELETE': lambda: requests.delete(url, verify=True, headers=headers, data=json_serialize(params)),
'GET': lambda: requests.get(url, verify=True, headers=headers, params=params),
'PATCH': lambda: requests.patch(url, verify=True, headers=headers, data=json_serialize(params)),
'POST': lambda: requests.post(url, verify=True, headers=headers, data=json_serialize(params)),