Skip to content
Snippets Groups Projects
Commit a4a8b43c authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

refactor request wrapper for logging

parent 4e459053
No related branches found
No related tags found
No related merge requests found
import requests
import logging
from requests.models import HTTPError
logger = logging.getLogger(__name__)
class Request(object):
......@@ -11,47 +15,34 @@ class Request(object):
self.BASE_URL = url
def get(self, endpoint: str, headers=None, **kwargs):
r = requests.get(
self.BASE_URL + endpoint,
headers={**headers, **self.headers} if headers else self.headers,
**kwargs
)
r.raise_for_status()
def do_request(self, method, endpoint, *args, **kwargs):
r = requests.request(method, self.BASE_URL + endpoint,
*args,
**kwargs,
headers={
**kwargs.get('headers', {}),
**self.headers
})
try:
r.raise_for_status()
except HTTPError as e:
if e.response.status_code < 500:
logger.error(e.response.content.decode('utf-8'))
raise e
return r.json()
def post(self, endpoint: str, headers=None, **kwargs):
def get(self, endpoint: str, *args, **kwargs):
return self.do_request('get', endpoint, *args, **kwargs)
r = requests.post(
self.BASE_URL + endpoint,
headers={**headers, **self.headers} if headers else self.headers,
**kwargs
)
r.raise_for_status()
def post(self, endpoint: str, data=None, **kwargs):
return self.do_request('post', endpoint, data=data, **kwargs)
return r.json()
def put(self, endpoint: str, **kwargs):
return self.do_request('put', endpoint, **kwargs)
def put(self, endpoint: str, headers=None, **kwargs):
r = requests.put(
self.BASE_URL + endpoint,
headers={**headers, **self.headers} if headers else self.headers,
**kwargs
)
r.raise_for_status()
return r.json()
def delete(self, endpoint: str, headers=None, **kwargs):
r = requests.delete(
self.BASE_URL + endpoint,
headers={**headers, **self.headers} if headers else self.headers,
**kwargs
)
r.raise_for_status()
return r.json()
def delete(self, endpoint: str, **kwargs):
return self.do_request('delete', endpoint, **kwargs)
class AdminRequest(Request):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment