Skip to content

Commit 8277582

Browse files
committed
- client implementation accordingly to the NLIC API
1 parent 8aa4da1 commit 8277582

2 files changed

Lines changed: 39 additions & 9 deletions

File tree

netlicensing/netlicensing.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
NLIC_API_URL = 'https://go.netlicensing.io/core/v2/rest/'
77

88
class NetLicensing:
9-
def __init__(self, imp_url=NLIC_API_URL):
10-
self.imp_url = imp_url
9+
def __init__(self, nlic_apikey, nlic_baseurl=NLIC_API_URL):
10+
self.nlic_apikey = nlic_apikey
11+
self.nlic_baseurl = nlic_baseurl
12+
# https://requests.readthedocs.io/en/master/user/advanced/
1113
requests_session = requests.Session()
1214
requests_adapters = requests.adapters.HTTPAdapter(max_retries=3)
1315
requests_session.mount('https://', requests_adapters)
16+
# https://netlicensing.io/wiki/security#api-key-identification
17+
requests_session.auth = ('apiKey', self.nlic_apikey)
18+
requests_session.headers.update({'Accept': 'application/json'})
1419
self.requests_session = requests_session
1520

1621
def about(self):
@@ -39,15 +44,32 @@ def get_response(response):
3944
)
4045
return result.get('response')
4146

42-
def get_headers(self):
43-
return {'Accept': 'application/json'}
47+
def _get(self, url, payload=None):
48+
response = self.requests_session.get(url, params=payload)
49+
return self.get_response(response)
4450

4551
def _post(self, url, payload=None):
46-
headers = self.get_headers()
47-
response = self.requests_session.post(url, headers=headers, data=payload)
52+
response = self.requests_session.post(url, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=payload)
53+
return self.get_response(response)
54+
55+
def _delete(self, url, payload=None):
56+
response = self.requests_session.delete(url, data=payload)
4857
return self.get_response(response)
4958

5059
def validate(self, licensee_uid):
51-
url = f'{self.imp_url}licensee/{licensee_uid}/validate'
52-
payload = {'licensee_uid': licensee_uid, 'amount': licensee_uid}
60+
url = f'{self.nlic_baseurl}licensee/{licensee_uid}/validate'
61+
payload = {'licensee_uid': licensee_uid}
5362
return self._post(url, payload)
63+
64+
def get_licensee(self, licensee_uid):
65+
url = f'{self.imp_url}licensee/{licensee_uid}'
66+
return self._get(url)
67+
68+
def get_licensee(self, **kwargs):
69+
customer_uid = kwargs.get('customer_uid')
70+
url = f'{self.imp_url}licensee/{customer_uid}'
71+
return self._get(url)
72+
73+
def delete_licensee(self, licensee_uid):
74+
url = f'{self.imp_url}licensee/{licensee_uid}'
75+
return self._delete(url)

tests/conftest.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
from netlicensing import NetLicensing
44

5+
TEST_API_LEY = '88178d92-7657-46e9-912b-30066dc9f419'
6+
7+
def pytest_addoption(parser):
8+
parser.addoption('--nlic-apikey', default=TEST_API_LEY,
9+
help='NetLicensing API Key'
10+
'[default: %default]')
11+
512
@fixture
613
def netlicensing(request):
7-
return NetLicensing()
14+
nlic_apikey = request.config.getoption('--nlic-apikey')
15+
return NetLicensing(nlic_apikey=nlic_apikey)

0 commit comments

Comments
 (0)