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 requests
import logging
from requests.models import HTTPError
logger = logging.getLogger(__name__)
class Request(object): class Request(object):
...@@ -11,47 +15,34 @@ class Request(object): ...@@ -11,47 +15,34 @@ class Request(object):
self.BASE_URL = url self.BASE_URL = url
def get(self, endpoint: str, headers=None, **kwargs): def do_request(self, method, endpoint, *args, **kwargs):
r = requests.request(method, self.BASE_URL + endpoint,
r = requests.get( *args,
self.BASE_URL + endpoint, **kwargs,
headers={**headers, **self.headers} if headers else self.headers, headers={
**kwargs **kwargs.get('headers', {}),
) **self.headers
r.raise_for_status() })
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() 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( def post(self, endpoint: str, data=None, **kwargs):
self.BASE_URL + endpoint, return self.do_request('post', endpoint, data=data, **kwargs)
headers={**headers, **self.headers} if headers else self.headers,
**kwargs
)
r.raise_for_status()
return r.json() def put(self, endpoint: str, **kwargs):
return self.do_request('put', endpoint, **kwargs)
def put(self, endpoint: str, headers=None, **kwargs): def delete(self, endpoint: str, **kwargs):
return self.do_request('delete', endpoint, **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()
class AdminRequest(Request): 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