Skip to content

Commit a0a3ec0

Browse files
committed
Update methods in MonoManager
1 parent faa62e4 commit a0a3ec0

File tree

2 files changed

+47
-24
lines changed

2 files changed

+47
-24
lines changed

monobank_api_client/managers.py

Lines changed: 46 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import requests
2-
from typing import Dict, List
2+
from typing import Dict
33
from datetime import datetime
44

55
from .config import (
@@ -21,39 +21,39 @@ def __init__(self, token=None):
2121
_mono_webhook_uri = MONOBANK_WEBHOOK_URI
2222

2323
@property
24-
def token(self):
24+
def token(self) -> str:
2525
return self._token
2626

2727
@token.setter
2828
def token(self, new_token):
2929
self._token = new_token
3030

3131
@property
32-
def mono_currency_uri(self):
32+
def mono_currency_uri(self) -> str:
3333
return self._mono_currency_uri
3434

3535
@mono_currency_uri.setter
3636
def mono_currency_uri(self, new_uri):
3737
self._mono_currency_uri = new_uri
3838

3939
@property
40-
def mono_client_info_uri(self):
40+
def mono_client_info_uri(self) -> str:
4141
return self._mono_client_info_uri
4242

4343
@mono_client_info_uri.setter
4444
def mono_client_info_uri(self, new_uri):
4545
self._mono_client_info_uri = new_uri
4646

4747
@property
48-
def mono_statement_uri(self):
48+
def mono_statement_uri(self) -> str:
4949
return self._mono_statement_uri
5050

5151
@mono_statement_uri.setter
5252
def mono_statement_uri(self, new_uri):
5353
self._mono_statement_uri = new_uri
5454

5555
@property
56-
def mono_webhook_uri(self):
56+
def mono_webhook_uri(self) -> str:
5757
return self._mono_webhook_uri
5858

5959
@mono_webhook_uri.setter
@@ -65,25 +65,32 @@ def session(cls) -> requests.sessions.Session:
6565
return requests.Session()
6666

6767
@staticmethod
68-
def __date(period: int) -> int|Dict:
68+
def __date(period: int) -> Dict:
6969
_day = 86400 # 1 day (UNIX)
7070
try:
71-
time_delta = int(datetime.now().timestamp()) - (period * _day)
71+
delta = int(datetime.now().timestamp()) - (period * _day)
72+
time_delta = {
73+
"time_delta": delta
74+
}
7275
return time_delta
7376
except Exception as exc:
7477
exception = {
7578
'detail': str(exc)
7679
}
7780
return exception
7881

79-
def get_currency(self) -> List[Dict]|Dict:
82+
def get_currency(self) -> Dict:
8083
try:
8184
session = self.session()
8285
uri = self.mono_currency_uri
8386
response = session.get(uri)
8487
code = response.status_code
8588
response.raise_for_status()
86-
return response.json()
89+
payload = {
90+
"code": code,
91+
"detail": response.json()
92+
}
93+
return payload
8794
except requests.exceptions.HTTPError as exc:
8895
error_response = {
8996
"code": code,
@@ -105,7 +112,11 @@ def get_client_info(self) -> Dict:
105112
response = session.get(uri, headers=headers)
106113
code = response.status_code
107114
response.raise_for_status()
108-
return response.json()
115+
payload = {
116+
"code": code,
117+
"detail": response.json()
118+
}
119+
return payload
109120
except requests.exceptions.HTTPError as exc:
110121
error_response = {
111122
"code": code,
@@ -120,27 +131,37 @@ def get_client_info(self) -> Dict:
120131

121132
def get_balance(self) -> Dict:
122133
try:
123-
response = self.get_client_info()
134+
client_info = self.get_client_info()
135+
code = client_info.get("code")
136+
data = client_info.get("detail")
124137
balance = {
125-
'balance': response["accounts"][0]["balance"] / 100
138+
'balance': data["accounts"][0]["balance"] / 100
139+
}
140+
payload = {
141+
"code": code,
142+
"detail": balance
126143
}
127-
return balance
144+
return payload
128145
except Exception:
129-
return response
146+
return client_info
130147

131-
def get_statement(self, period: int) -> List[Dict]|Dict:
148+
def get_statement(self, period: int) -> Dict:
132149
try:
133150
session = self.session()
134151
token = self.token
135152
uri = self.mono_statement_uri
136153
headers = {"X-Token": token}
137-
time_delta = self.__date(period)
154+
time_delta = self.__date(period).get("time_delta")
138155
response = session.get(
139156
f"{uri}{time_delta}/", headers=headers
140157
)
141158
code = response.status_code
142159
response.raise_for_status()
143-
return response.json()
160+
payload = {
161+
"code": code,
162+
"detail": response.json()
163+
}
164+
return payload
144165
except requests.exceptions.HTTPError as exc:
145166
error_response = {
146167
"code": code,
@@ -159,12 +180,14 @@ def create_webhook(self, webhook: str) -> Dict:
159180
token = self.token
160181
uri = self.mono_webhook_uri
161182
headers = {"X-Token": token}
162-
response = session.post(
163-
uri, headers=headers, data=webhook
164-
)
183+
response = session.post(uri, headers=headers, data=webhook)
165184
code = response.status_code
166185
response.raise_for_status()
167-
return response.json()
186+
payload = {
187+
"code": code,
188+
"detail": response.json()
189+
}
190+
return payload
168191
except requests.exceptions.HTTPError as exc:
169192
error_response = {
170193
"code": code,
@@ -175,4 +198,4 @@ def create_webhook(self, webhook: str) -> Dict:
175198
exception = {
176199
"detail": str(exc)
177200
}
178-
return exception
201+
return exception

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def readme():
88

99
setup(
1010
name='monobank_api_client',
11-
version='0.1.8',
11+
version='0.1.9',
1212
author='ihor.sotnyk',
1313
author_email='ihor.sotnyk@onix-systems.com',
1414
description='This module is designed for quick interaction with the monobank API.',

0 commit comments

Comments
 (0)