diff --git a/backend/metagenedb/common/utils/api/baseapi.py b/backend/metagenedb/common/utils/api/baseapi.py index 2aa39aae4b79d0b146cd81ea466ac9c4ea1fec57..8b1a7fe056447ee1674b693f5bee348ae96d9765 100644 --- a/backend/metagenedb/common/utils/api/baseapi.py +++ b/backend/metagenedb/common/utils/api/baseapi.py @@ -1,6 +1,19 @@ +import logging import requests from urllib.parse import urljoin +logging.basicConfig(level=logging.INFO) +_LOGGER = logging.getLogger(__name__) + + +class LoggedSession(requests.Session): + + def request(self, method, url, **kwargs): + _LOGGER.info(f"{method.upper()} {url}") + response = super().request(method, url, **kwargs) + _LOGGER.info(f"STATUS CODE: {response.status_code}") + return response + class BaseAPI(object): BASE_URL = '' @@ -9,6 +22,7 @@ class BaseAPI(object): 'Content-type': 'application/json', 'Accept': '*/*' } + SESSION = LoggedSession def __init__(self): if not getattr(self, 'base_url', None): @@ -16,25 +30,27 @@ class BaseAPI(object): if not getattr(self, 'route', None): self.route = self.ROUTE self.url = urljoin(self.base_url, self.route) + self.session = self.SESSION() + self.session.headers.update(self.HEADERS) def get_all(self): - response = requests.get(self.url) + response = self.session.get(self.url) response.raise_for_status() return response.json() def get(self, entry_id): full_url = urljoin(self.url, entry_id) - response = requests.get(full_url) + response = self.session.get(full_url) response.raise_for_status() return response.json() def post(self, data): - response = requests.post(f"{self.url}", json=data, headers=self.HEADERS) + response = self.session.post(f"{self.url}", json=data) response.raise_for_status() return response.json() def put(self, entry_id, data): full_url = urljoin(self.url, entry_id) - response = requests.put(f"{full_url}/", json=data, headers=self.HEADERS) + response = self.session.put(f"{full_url}/", json=data) response.raise_for_status() return response.json() diff --git a/backend/metagenedb/common/utils/api/togows.py b/backend/metagenedb/common/utils/api/togows.py index 547703dc4aa091eb918694a570a9728a1ee006e7..7951b78d30d5575c07cbd0bf35ad4c31e1635cee 100644 --- a/backend/metagenedb/common/utils/api/togows.py +++ b/backend/metagenedb/common/utils/api/togows.py @@ -11,6 +11,7 @@ class TogoWSEntry(TogoWS): TYPE = 'entry' def __init__(self, database, entry_format='json'): + super().__init__() self.database = database self.format = entry_format self.route = f"{self.TYPE}/{self.database}/"