|
6 | 6 | NLIC_API_URL = 'https://go.netlicensing.io/core/v2/rest/' |
7 | 7 |
|
8 | 8 | 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/ |
11 | 13 | requests_session = requests.Session() |
12 | 14 | requests_adapters = requests.adapters.HTTPAdapter(max_retries=3) |
13 | 15 | 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'}) |
14 | 19 | self.requests_session = requests_session |
15 | 20 |
|
16 | 21 | def about(self): |
@@ -39,15 +44,32 @@ def get_response(response): |
39 | 44 | ) |
40 | 45 | return result.get('response') |
41 | 46 |
|
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) |
44 | 50 |
|
45 | 51 | 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) |
48 | 57 | return self.get_response(response) |
49 | 58 |
|
50 | 59 | 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} |
53 | 62 | 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) |
0 commit comments