import requests from src import config from src.helpers.logger import Logger class ApiClient: 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 self.session = requests.Session() self.session.headers["authorization"] = "Bearer {}".format(self.user_token) def get(self, uri): self.log.info(f"GET request:\n uri='{uri}'") resp = self.session.get(url=self.host_endpoint + uri, timeout=self.timeout) self.log.info(f"RESPONSE 'status_code': {resp.status_code}, 'body': {resp.json()}") return resp def post(self, uri, data): self.log.info(f"POST request:\n uri='{uri}' \ndata:'{data}'") resp = self.session.post(url=self.host_endpoint + uri, json=data, timeout=self.timeout) self.log.info(f"RESPONSE 'status_code': {resp.status_code}") return resp def delete(self, uri): self.log.info(f"DELETE request: uri='{uri}'") resp = self.session.delete(url=self.host_endpoint + uri, timeout=self.timeout) self.log.info(f"RESPONSE 'status_code': {resp.status_code}") return resp def patch(self, uri): self.log.info(f"PATCH request: uri='{uri}'") resp = self.session.patch(url=self.host_endpoint + uri, timeout=self.timeout) self.log.info(f"RESPONSE 'status_code': {resp.status_code}") return resp def put(self, uri): self.log.info(f"PUT request: uri='{uri}'") resp = self.session.put(url=self.host_endpoint + uri, timeout=self.timeout) self.log.info(f"RESPONSE 'status_code': {resp.status_code}") return resp