dubidoc 0.1.1__py3-none-any.whl → 0.1.3__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 CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  __author__ = 'Dmytro Litvinov'
4
4
  __email__ = 'me@dmytrolitvinov.com'
5
- __version__ = '0.1.1'
5
+ __version__ = '0.1.3'
6
6
 
7
7
  from .client import DubidocAPIClient
@@ -14,6 +14,11 @@ class DocumentAPI:
14
14
  return self.client.make_request(HttpMethod.GET, self.PATH)
15
15
 
16
16
  def create(self, body, organization_id=None):
17
+ """
18
+ filename — назва файлу з розширенням (опціонально використовується для додаткової валідації)
19
+ file — base64
20
+ title — відображувана назва в кабінеті користувача, емейл листі тощо (рекомендується передавати назву файлу без розширення, хоча це не критично)
21
+ """
17
22
  return self.client.make_request(HttpMethod.POST, self.PATH, body)
18
23
 
19
24
  def get(self, document_id):
@@ -9,9 +9,9 @@ class DocumentLinkAPI:
9
9
  def __init__(self, client):
10
10
  self.client = client
11
11
 
12
- def generate_public_link(self, document_id):
12
+ def generate_public_link(self, document_id, body):
13
13
  path = self.PATH.format(document_id)
14
- return self.client.make_request(HttpMethod.POST, path)
14
+ return self.client.make_request(HttpMethod.POST, path, body)
15
15
 
16
16
  def revoke_public_link(self, document_id):
17
17
  path = self.PATH.format(document_id)
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
 
@@ -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(self)
48
- self.document_link_api = DocumentLinkAPI(self)
49
- self.participant_api = ParticipantAPI(self)
50
- self.download_api = DownloadAPI(self)
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
54
  if environment == 'stage':
53
- self.access_token_api = AccessTokenAPI(self)
54
- self.authentication_api = AuthenticationAPI(self)
55
- self.device_api = DeviceAPI(self)
56
- # Not yet implemented anot probably not needed
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 make_request(self, method: HttpMethod, path: str, body: dict = {}):
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
@@ -0,0 +1,4 @@
1
+ class DubidocAPIResponse:
2
+ def __init__(self, data, status_code):
3
+ self.data = data
4
+ self.status_code = status_code
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dubidoc
3
- Version: 0.1.1
3
+ Version: 0.1.3
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 rearly 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.
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
@@ -73,3 +73,12 @@ print(documents)
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,19 +1,20 @@
1
- dubidoc/__init__.py,sha256=eyZiRe4vKR3cVZ-_dtX1gQSoKRljEaZ2dXFANyrZF24,177
2
- dubidoc/client.py,sha256=eHhPnlQIpCsxL4tN8GSPQQjoppQjRqCOPQlYwQphTGs,2847
1
+ dubidoc/__init__.py,sha256=6l4n2dkEYCl6u_S0UaTouCrFrPSez64EBrHDeSNz3Ps,177
2
+ dubidoc/client.py,sha256=UXRt6IykV-Pc9r9GCQv3xrAZP8VieIVcNz0CnbKG7yg,3216
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
7
8
  dubidoc/_modules/device.py,sha256=ItrK-wzZVEAXPIWbTUkTsYl1JHZLSSAAAHFuKbgw2MU,976
8
- dubidoc/_modules/document.py,sha256=_DcQyn4EA346CZAr2BrZRZA0lhNtiLoGxt2e_HCt-qc,1455
9
- dubidoc/_modules/document_link.py,sha256=jBb0oB5aFGMLMg-iB1SIcE7R77iMskwN1MZ2ShsN6E4,503
9
+ dubidoc/_modules/document.py,sha256=-SmWvQPN8r8jQGYFTm99bHhXmAOMF2kBJV96Ue8slV4,1947
10
+ dubidoc/_modules/document_link.py,sha256=dHultZvqbPW3VxCspdUnzfBgmOPUzSgjeeuyAyA4H_I,515
10
11
  dubidoc/_modules/download.py,sha256=foTua0_sFpGrwObwgOr6HPen4ngFrJOhGdsCqPUCjnI,608
11
12
  dubidoc/_modules/organization.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
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.1.dist-info/LICENSE,sha256=wYGgsJKkNcLDvJQfbrT5HabzSp3imJCmSpCOS8_pu9o,1072
16
- dubidoc-0.1.1.dist-info/METADATA,sha256=YBnlFdy-TiOIw1798_4zeXnvpZ0IkVg9TaE7ve61yaw,2805
17
- dubidoc-0.1.1.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
18
- dubidoc-0.1.1.dist-info/top_level.txt,sha256=SQKT6uKBzQCmsVr8MCszUFz4WYCc5Oq7wvy5Y-ZReU0,8
19
- dubidoc-0.1.1.dist-info/RECORD,,
16
+ dubidoc-0.1.3.dist-info/LICENSE,sha256=wYGgsJKkNcLDvJQfbrT5HabzSp3imJCmSpCOS8_pu9o,1072
17
+ dubidoc-0.1.3.dist-info/METADATA,sha256=TnzKpuPPfjbpy8IiwTHGJrzcPuIvPXXa9mJbE8SkeyA,3018
18
+ dubidoc-0.1.3.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
19
+ dubidoc-0.1.3.dist-info/top_level.txt,sha256=SQKT6uKBzQCmsVr8MCszUFz4WYCc5Oq7wvy5Y-ZReU0,8
20
+ dubidoc-0.1.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5