import requests from src import config from src.helpers.logger import Logger class ApiClient: session = requests.session() log = Logger() def __init__(self, token, host_endpoint=config.TARGET_API_URL, timeout=60): self.host_endpoint = host_endpoint self.timeout = int(timeout) self.user_token = token @property def headers(self): return {"authorization": "Bearer {}".format(self.user_token)} def get(self, uri): self.log.info(f"GET request:\n uri='{uri}'") return self.session.get(url=self.host_endpoint + uri, headers=self.headers, timeout=self.timeout) def post(self, uri, data): self.log.info(f"POST request:\n uri='{uri}' \ndata:'{data}'") return self.session.post(url=self.host_endpoint + uri, json=data, headers=self.headers, timeout=self.timeout) def delete(self, uri): self.log.info(f"DELETE request: uri='{uri}'") return self.session.delete(url=self.host_endpoint + uri, headers=self.headers, timeout=self.timeout) def patch(self, uri): self.log.info(f"PATCH request: uri='{uri}'") return self.session.patch(url=self.host_endpoint + uri, headers=self.headers, timeout=self.timeout)