http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
#print 'HTTP_CODE: {}'.format(http_code)
curl_cmd.close()
- if http_code == 204:
- return None
- elif http_code == 404:
- if data.getvalue():
- return json.loads(data.getvalue().decode())
- else:
- return "NOT FOUND"
+ # TODO 202 accepted should be returned somehow
if data.getvalue():
- return json.loads(data.getvalue().decode())
- return "Failed"
+ return http_code, json.loads(data.getvalue().decode())
+ else:
+ return http_code, None
def send_cmd(self, endpoint='', postfields_dict=None,
formfile=None, filename=None,
- put_method=False):
+ put_method=False, patch_method=False):
data = BytesIO()
curl_cmd = self._get_curl_cmd(endpoint)
if put_method:
curl_cmd.setopt(pycurl.PUT, 1)
+ elif patch_method:
+ curl_cmd.setopt(pycurl.CUSTOMREQUEST, "PATCH")
else:
curl_cmd.setopt(pycurl.POST, 1)
curl_cmd.setopt(pycurl.WRITEFUNCTION, data.write)
postfields_dict=postfields_dict,
formfile=formfile,
filename=filename,
- put_method=False)
+ put_method=False, patch_method=False)
def put_cmd(self, endpoint='', postfields_dict=None,
formfile=None, filename=None):
postfields_dict=postfields_dict,
formfile=formfile,
filename=filename,
- put_method=True)
+ put_method=True, patch_method=False)
+
+ def patch_cmd(self, endpoint='', postfields_dict=None,
+ formfile=None, filename=None):
+ return self.send_cmd(endpoint=endpoint,
+ postfields_dict=postfields_dict,
+ formfile=formfile,
+ filename=filename,
+ put_method=False, patch_method=True)
def get2_cmd(self, endpoint):
data = BytesIO()
curl_cmd.setopt(pycurl.HTTPGET, 1)
curl_cmd.setopt(pycurl.WRITEFUNCTION, data.write)
curl_cmd.perform()
+ http_code = curl_cmd.getinfo(pycurl.HTTP_CODE)
curl_cmd.close()
- return data.getvalue()
+ if data.getvalue():
+ return http_code, data.getvalue()
+ return http_code, None