Skip to content

Commit

Permalink
Update API client
Browse files Browse the repository at this point in the history
Make the API client verify HTTPS connection based on the configuration
file's ssl-verify option. Also centralize where the default headers are
set so it will be easy to update in the future if needed.

Close #136
  • Loading branch information
elyezer committed Feb 2, 2018
1 parent dfbe097 commit 4dea933
Showing 1 changed file with 12 additions and 33 deletions.
45 changes: 12 additions & 33 deletions camayoc/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,10 @@ def __init__(self, response_handler=None, url=None, authenticate=True):
"""
self.url = url
self.token = None
cfg = config.get_config().get('qcs', {})
self.verify = cfg.get('ssl-verify', False)

if not self.url:
cfg = config.get_config().get('qcs', {})
hostname = cfg.get('hostname')

if not hostname:
Expand Down Expand Up @@ -161,58 +162,32 @@ def default_headers(self):
def delete(self, endpoint, **kwargs):
"""Send an HTTP DELETE request."""
url = urljoin(self.url, endpoint)
return self.request(
'DELETE',
url,
headers=self.default_headers(),
**kwargs)
return self.request('DELETE', url, **kwargs)

def get(self, endpoint, **kwargs):
"""Send an HTTP GET request."""
url = urljoin(self.url, endpoint)
return self.request(
'GET',
url,
headers=self.default_headers(),
**kwargs)
return self.request('GET', url, **kwargs)

def options(self, endpoint, **kwargs):
"""Send an HTTP OPTIONS request."""
url = urljoin(self.url, endpoint)
return self.request(
'OPTIONS',
url,
headers=self.default_headers(),
**kwargs)
return self.request('OPTIONS', url, **kwargs)

def head(self, endpoint, **kwargs):
"""Send an HTTP HEAD request."""
url = urljoin(self.url, endpoint)
return self.request(
'HEAD',
url,
headers=self.default_headers(),
**kwargs)
return self.request('HEAD', url, **kwargs)

def post(self, endpoint, payload, **kwargs):
"""Send an HTTP POST request."""
url = urljoin(self.url, endpoint)
return self.request(
'POST',
url,
headers=self.default_headers(),
json=payload,
**kwargs)
return self.request('POST', url, json=payload, **kwargs)

def put(self, endpoint, payload, **kwargs):
"""Send an HTTP PUT request."""
url = urljoin(self.url, endpoint)
return self.request(
'PUT',
url,
headers=self.default_headers(),
json=payload,
**kwargs)
return self.request('PUT', url, json=payload, **kwargs)

def request(self, method, url, **kwargs):
"""Send an HTTP request.
Expand All @@ -226,4 +201,8 @@ def request(self, method, url, **kwargs):
#
# request(method, url, **kwargs)
#
headers = self.default_headers()
headers.update(kwargs.get('headers', {}))
kwargs['headers'] = headers
kwargs.setdefault('verify', self.verify)
return self.response_handler(requests.request(method, url, **kwargs))

0 comments on commit 4dea933

Please sign in to comment.