52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
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
|
|
|