import requests class InvoiceNinja(object): API_V1 = 'api/v1' def __init__(self, endpoint_url: str = 'https://invoicing.co', api_token: str = str()): self.endpoint_url = '{}/{}'.format(endpoint_url, self.API_V1) self.api_token = api_token self.headers = dict() def set_url(url: str): self.endpoint_url = url def get_url(): return self.endpoint_url def set_token(token: str): self.api_token = token def get_token(): return self.api_token #def _get_headers(self, headers: dict = dict()): def build_headers(self): ''' Build Invoice Ninja API headers for request. A header dictionary with the API token is returned by default. ''' headers = { 'X-API-TOKEN': self.api_token, 'X-Requested-With': 'XMLHttpRequest'} return self.headers.update(headers) def ping(self): ''' Ping Invoice Ninja instance. ''' server_response = requests.get(url=self._get_url_for(), headers=self.build_headers()) if server_response.ok: return True else: return False