dubidoc 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dubidoc/__init__.py +1 -1
- dubidoc/client.py +21 -14
- dubidoc/response.py +4 -0
- {dubidoc-0.1.2.dist-info → dubidoc-0.1.4.dist-info}/METADATA +12 -3
- {dubidoc-0.1.2.dist-info → dubidoc-0.1.4.dist-info}/RECORD +8 -7
- {dubidoc-0.1.2.dist-info → dubidoc-0.1.4.dist-info}/WHEEL +1 -1
- {dubidoc-0.1.2.dist-info → dubidoc-0.1.4.dist-info}/LICENSE +0 -0
- {dubidoc-0.1.2.dist-info → dubidoc-0.1.4.dist-info}/top_level.txt +0 -0
dubidoc/__init__.py
CHANGED
dubidoc/client.py
CHANGED
@@ -14,7 +14,7 @@ from dubidoc._modules import (
|
|
14
14
|
DownloadAPI,
|
15
15
|
)
|
16
16
|
from dubidoc.enum import HttpMethod
|
17
|
-
|
17
|
+
from dubidoc.response import DubidocAPIResponse
|
18
18
|
|
19
19
|
logger = logging.getLogger('dubidoc')
|
20
20
|
|
@@ -32,9 +32,9 @@ class DubidocAPIClient:
|
|
32
32
|
'user-agent': f'python-dubidoc/{__version__} | (https://github.com/DmytroLitvinov/python-dubidoc)',
|
33
33
|
}
|
34
34
|
|
35
|
-
def __init__(self, api_token: str,
|
35
|
+
def __init__(self, api_token: str, *, is_stage_env: bool = False):
|
36
36
|
self.api_token = api_token
|
37
|
-
if
|
37
|
+
if is_stage_env:
|
38
38
|
self.base_url = 'https://docs-stage.navkolo.one'
|
39
39
|
else:
|
40
40
|
self.base_url = 'https://my.dubidoc.com.ua'
|
@@ -43,17 +43,19 @@ class DubidocAPIClient:
|
|
43
43
|
self.prefix = f'api/api/{self.API_VERSION}/'
|
44
44
|
self.endpoint = urljoin(self.base_url, self.prefix)
|
45
45
|
|
46
|
+
self._modules = {}
|
47
|
+
|
46
48
|
# Modules
|
47
|
-
self.document_api = DocumentAPI
|
48
|
-
self.document_link_api = DocumentLinkAPI
|
49
|
-
self.participant_api = ParticipantAPI
|
50
|
-
self.download_api = DownloadAPI
|
49
|
+
self.document_api = self._get_module(DocumentAPI)
|
50
|
+
self.document_link_api = self._get_module(DocumentLinkAPI)
|
51
|
+
self.participant_api = self._get_module(ParticipantAPI)
|
52
|
+
self.download_api = self._get_module(DownloadAPI)
|
51
53
|
|
52
|
-
if
|
53
|
-
self.access_token_api = AccessTokenAPI
|
54
|
-
self.authentication_api = AuthenticationAPI
|
55
|
-
self.device_api = DeviceAPI
|
56
|
-
# Not yet implemented
|
54
|
+
if is_stage_env == 'stage':
|
55
|
+
self.access_token_api = self._get_module(AccessTokenAPI)
|
56
|
+
self.authentication_api = self._get_module(AuthenticationAPI)
|
57
|
+
self.device_api = self._get_module(DeviceAPI)
|
58
|
+
# Not yet implemented and probably not needed
|
57
59
|
# self.organization_user_api = OrganizationUserAPI(self)
|
58
60
|
# self.organization_api = OrganizationAPI(self)
|
59
61
|
# self.shortcode_api = ShortcodeAPI(self)
|
@@ -63,7 +65,12 @@ class DubidocAPIClient:
|
|
63
65
|
headers.update({'X-Access-Token': f'{self.api_token}'})
|
64
66
|
return headers
|
65
67
|
|
66
|
-
def
|
68
|
+
def _get_module(self, cls):
|
69
|
+
if cls not in self._modules:
|
70
|
+
self._modules[cls] = cls(self)
|
71
|
+
return self._modules[cls]
|
72
|
+
|
73
|
+
def make_request(self, method: HttpMethod, path: str, body: dict = {}) -> DubidocAPIResponse:
|
67
74
|
"""
|
68
75
|
Fetches the given path in the Dubidoc API.
|
69
76
|
:param method: HTTP method
|
@@ -79,4 +86,4 @@ class DubidocAPIClient:
|
|
79
86
|
response = requests.request(method.value, url, headers=headers, json=body, timeout=10)
|
80
87
|
logger.debug(f'Received response with status code {response.status_code} and body {response.text}')
|
81
88
|
|
82
|
-
return response.json()
|
89
|
+
return DubidocAPIResponse(response.json(), response.status_code)
|
dubidoc/response.py
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dubidoc
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.4
|
4
4
|
Summary: Python SDK for dubidoc.com.ua API
|
5
5
|
Maintainer-email: Dmytro Litvinov <me@dmytrolitvinov.com>
|
6
6
|
License: MIT License
|
@@ -44,7 +44,7 @@ Requires-Dist: requests
|
|
44
44
|
|
45
45
|
Python API wrapper around Dubidoc API. Feel free to contribute and make it better! 🚀
|
46
46
|
|
47
|
-
**NOTE**: Since it is
|
47
|
+
**NOTE**: Since it is early release, some of the API endpoints may not be implemented yet. If you need some specific endpoint, feel free to create an issue or pull request.
|
48
48
|
Also, library can be changed in the future, so be careful with the updates as for now.
|
49
49
|
|
50
50
|
## Installation
|
@@ -67,9 +67,18 @@ api_token = 'xxxxxxxxxxxxxxx'
|
|
67
67
|
dubidoc = DubidocAPIClient(api_token)
|
68
68
|
|
69
69
|
documents = dubidoc.document_api.list()
|
70
|
-
print(documents)
|
70
|
+
print(documents.data, documents.response_code)
|
71
71
|
```
|
72
72
|
|
73
73
|
## License
|
74
74
|
|
75
75
|
This project is licensed under the terms of the [MIT license](https://github.com/DmytroLitvinov/python-dubidoc/blob/master/LICENSE).
|
76
|
+
|
77
|
+
|
78
|
+
### HOW TO MAKE A RELEASE
|
79
|
+
|
80
|
+
* Add changes to `CHANGELOG.md`
|
81
|
+
* Change version in `dubidoc/__init__.py` and `pyproject.toml`
|
82
|
+
* `source .env/bin/activate`
|
83
|
+
* `python3 -m build --sdist --wheel`
|
84
|
+
* `twine upload dist/*`
|
@@ -1,6 +1,7 @@
|
|
1
|
-
dubidoc/__init__.py,sha256=
|
2
|
-
dubidoc/client.py,sha256=
|
1
|
+
dubidoc/__init__.py,sha256=zt7Fg8wQrM92iZdiqQ9Eh1DrosJ2iWB4nigaUK5fduE,177
|
2
|
+
dubidoc/client.py,sha256=R4F6EZSM8cP6Nc4_Oj3VyUkwVt0nBZCVs7gXZXCq07g,3210
|
3
3
|
dubidoc/enum.py,sha256=RTIS0WplquZrFTqZGtzkc95i_9jqu2Xvl6j0SFXZ72I,120
|
4
|
+
dubidoc/response.py,sha256=8k2GkMW2F5FX4U2TGJPfJD-_UE6DA4c1FGGQL_Vzr-E,133
|
4
5
|
dubidoc/_modules/__init__.py,sha256=NUeLh3Onke4cs4BGkowtqbaBByLVh_tEqtXNtacKI2w,184
|
5
6
|
dubidoc/_modules/access_token.py,sha256=nHyYWWg95SJkifvlgtr9I_h7jPTcdpcgxORukdjwwBU,1018
|
6
7
|
dubidoc/_modules/authentication.py,sha256=AtIyTjtwdgT1nHBQkgqfvQsJvZ-T0qqK0epKi-TwGVE,1465
|
@@ -12,8 +13,8 @@ dubidoc/_modules/organization.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhz
|
|
12
13
|
dubidoc/_modules/organization_user.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
13
14
|
dubidoc/_modules/participant.py,sha256=AJ60D7cokQNQFFeUWCngWvx-NQl6VuG-YarREAW9HtE,811
|
14
15
|
dubidoc/_modules/storecode.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
15
|
-
dubidoc-0.1.
|
16
|
-
dubidoc-0.1.
|
17
|
-
dubidoc-0.1.
|
18
|
-
dubidoc-0.1.
|
19
|
-
dubidoc-0.1.
|
16
|
+
dubidoc-0.1.4.dist-info/LICENSE,sha256=wYGgsJKkNcLDvJQfbrT5HabzSp3imJCmSpCOS8_pu9o,1072
|
17
|
+
dubidoc-0.1.4.dist-info/METADATA,sha256=klo5kGONqKhbGiRpsQ_5F_SzSH4jZkO2Mkac7uk20IA,3048
|
18
|
+
dubidoc-0.1.4.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
19
|
+
dubidoc-0.1.4.dist-info/top_level.txt,sha256=SQKT6uKBzQCmsVr8MCszUFz4WYCc5Oq7wvy5Y-ZReU0,8
|
20
|
+
dubidoc-0.1.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|