Skip to content

Commit 375ebfa

Browse files
committed
fix(repository): Debugging fastapi package methods
1 parent 44f53ba commit 375ebfa

File tree

5 files changed

+62
-71
lines changed

5 files changed

+62
-71
lines changed

monobank_api_client/drf_mono/views.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,35 @@ class MonoView(GenericAPIView):
1717

1818
def post(self, request) -> Dict:
1919
serializer = self.serializer_class(data=request.data)
20-
serializer.is_valid(raise_exception=True)
20+
serializer.is_valid()
2121
_ = serializer.validated_data
22-
mono_obj = Mono.objects.filter(user=self.request.user)
23-
mono_obj.create(mono_token=_["mono_token"], user=request.user)
22+
mono = Mono.objects.filter(user=self.request.user)
2423
mng = SyncMonoManager()
25-
response = mng.create_success()
24+
if mono.first() is not None:
25+
response = mng.exists_exception()
26+
else:
27+
mono.create(mono_token=_["mono_token"], user=request.user)
28+
response = mng.create_success()
2629
return Response(response)
2730

2831
def put(self, request) -> Dict:
2932
serializer = self.serializer_class(data=request.data)
3033
serializer.is_valid(raise_exception=True)
3134
_ = serializer.validated_data
32-
mono_obj = Mono.objects.filter(user=request.user)
33-
mono_obj.update(mono_token=_["mono_token"])
35+
mono = Mono.objects.filter(user=request.user)
3436
mng = SyncMonoManager()
35-
response = mng.update_success()
37+
if mono.first() is not None:
38+
mono.update(mono_token=_["mono_token"])
39+
response = mng.update_success()
40+
else:
41+
response = mng.does_not_exsists_exception()
3642
return Response(response)
3743

3844
def delete(self, request) -> Dict:
3945
mng = SyncMonoManager()
40-
mono_obj = Mono.objects.filter(user=request.user)
41-
if mono_obj.first() is not None:
42-
mono_obj.delete()
46+
mono = Mono.objects.filter(user=request.user)
47+
if mono.first() is not None:
48+
mono.delete()
4349
response = mng.delete_success()
4450
else:
4551
response = mng.does_not_exsists_exception()

monobank_api_client/fastapi_mono/crud.py

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,59 +12,51 @@ async def create_mono(schema: MonoSchema, session: AsyncSession) -> Dict:
1212
query = await session.execute(select(mdl).where(mdl.user_id == schema.user_id))
1313
if query.first() is not None:
1414
return mng.exists_exception()
15-
else:
16-
new_obj = insert(mdl).values(**schema.model_dump())
17-
await session.execute(new_obj)
18-
await session.commit()
19-
response = mng.create_success()
20-
return response
15+
new_obj = insert(mdl).values(**schema.model_dump())
16+
await session.execute(new_obj)
17+
await session.commit()
18+
return mng.create_success()
2119
except Exception as exc:
2220
exception = {"detail": str(exc)}
2321
return exception
2422

2523

26-
async def read_mono(user: str, session: AsyncSession) -> Dict:
24+
async def read_mono(user_id: str, session: AsyncSession) -> Dict:
2725
try:
28-
query = await session.execute(select(mdl).where(mdl.user_id == user))
29-
token = query.first()[0].mono_token
30-
response = {"token": token}
31-
return response
26+
query = await session.execute(select(mdl).where(mdl.user_id == user_id))
27+
return query.first()
3228
except Exception as exc:
3329
exception = {"detail": str(exc)}
3430
return exception
3531

3632

3733
async def update_mono(
38-
user: str, schema: MonoSchemaUpdate, session: AsyncSession
34+
user_id: str, schema: MonoSchemaUpdate, session: AsyncSession
3935
) -> Dict:
4036
try:
4137
mng = AsyncMonoManager()
42-
query = await session.execute(select(mdl).where(mdl.user_id == user))
38+
query = await session.execute(select(mdl).where(mdl.user_id == user_id))
4339
if query.first() is not None:
4440
query = await session.execute(
45-
update(mdl).values(**schema.model_dump()).where(mdl.user_id == user)
41+
update(mdl).values(**schema.model_dump()).where(mdl.user_id == user_id)
4642
)
4743
await session.commit()
48-
response = mng.update_success()
49-
else:
50-
return mng.does_not_exsists_exception()
51-
return response
44+
return mng.update_success()
45+
return mng.does_not_exsists_exception()
5246
except Exception as exc:
5347
exception = {"detail": str(exc)}
5448
return exception
5549

5650

57-
async def delete_mono(user: str, session: AsyncSession) -> Dict:
51+
async def delete_mono(user_id: str, session: AsyncSession) -> Dict:
5852
try:
5953
mng = AsyncMonoManager()
60-
query = await session.execute(select(mdl).where(mdl.user_id == user))
54+
query = await session.execute(select(mdl).where(mdl.user_id == user_id))
6155
if query.first() is not None:
62-
query = await session.execute(delete(mdl).where(mdl.user_id == user))
56+
query = await session.execute(delete(mdl).where(mdl.user_id == user_id))
6357
await session.commit()
64-
response = mng.delete_success()
65-
else:
66-
return mng.does_not_exsists_exception()
67-
return response
58+
return mng.delete_success()
59+
return mng.does_not_exsists_exception()
6860
except Exception as exc:
6961
exception = {"detail": str(exc)}
7062
return exception

monobank_api_client/fastapi_mono/router.py

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -72,68 +72,61 @@ async def currency(ccy_pair: str) -> Dict:
7272

7373
@router.get("/client_info")
7474
async def client_info(
75-
user: str, session: AsyncSession = Depends(async_session)
75+
user_id: str, session: AsyncSession = Depends(async_session)
7676
) -> Dict:
7777
try:
7878
mng = AsyncMonoManager()
79-
mono = await crud.read_mono(user, session)
80-
token = mono.get("token")
81-
if token is not None:
82-
mng.token = token
83-
response = await mng.get_client_info()
84-
else:
85-
response = mng.does_not_exsists_exception()
86-
return response
79+
payload = await crud.read_mono(user_id, session)
80+
if payload is not None:
81+
mng.token = payload[0].mono_token
82+
return await mng.get_client_info()
83+
return mng.does_not_exsists_exception()
8784
except Exception as exc:
8885
exception = {"detail": str(exc)}
8986
return exception
9087

9188

9289
@router.get("/balance")
93-
async def balance(user: str, session: AsyncSession = Depends(async_session)) -> Dict:
90+
async def balance(user_id: str, session: AsyncSession = Depends(async_session)) -> Dict:
9491
try:
9592
mng = AsyncMonoManager()
96-
mono = await crud.read_mono(user, session)
97-
token = mono.get("token")
98-
if token is not None:
99-
mng.token = token
100-
response = await mng.get_balance()
101-
else:
102-
response = mng.does_not_exsists_exception()
103-
return response
93+
payload = await crud.read_mono(user_id, session)
94+
if payload is not None:
95+
mng.token = payload[0].mono_token
96+
return await mng.get_balance()
97+
return mng.does_not_exsists_exception()
10498
except Exception as exc:
10599
exception = {"detail": str(exc)}
106100
return exception
107101

108102

109103
@router.get("/statement")
110104
async def statement(
111-
user: str, period: int, session: AsyncSession = Depends(async_session)
105+
user_id: str, period: int, session: AsyncSession = Depends(async_session)
112106
) -> Dict:
113107
try:
114108
mng = AsyncMonoManager()
115-
mono = await crud.read_mono(user, session)
116-
token = mono.get("token")
117-
if token is not None:
118-
mng.token = token
119-
response = await mng.get_statement(period)
120-
else:
121-
response = mng.does_not_exsists_exception()
122-
return response
109+
payload = await crud.read_mono(user_id, session)
110+
if payload is not None:
111+
mng.token = payload[0].mono_token
112+
return await mng.get_statement(period)
113+
return mng.does_not_exsists_exception()
123114
except Exception as exc:
124115
exception = {"detail": str(exc)}
125116
return exception
126117

127118

128119
@router.post("/webhook")
129120
async def webhook(
130-
user: str, webhook: str, session: AsyncSession = Depends(async_session)
121+
user_id: str, webhook: str, session: AsyncSession = Depends(async_session)
131122
) -> Dict:
132123
try:
133-
mono = await crud.read_mono(user, session)
134-
mng = AsyncMonoManager(mono.get("token"))
135-
response = await mng.create_webhook(webhook)
136-
return response
124+
mng = AsyncMonoManager()
125+
payload = await crud.read_mono(user_id, session)
126+
if payload is not None:
127+
mng.token = payload[0].mono_token
128+
return await mng.create_webhook(webhook)
129+
return mng.does_not_exsists_exception()
137130
except Exception as exc:
138131
exception = {"detail": str(exc)}
139132
return exception

monobank_api_client/mono_config/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,13 @@
131131
}
132132

133133
MONO_CREATE_SUCCESS_CODE = 201
134-
MONO_CREATE_SUCCESS_DETAIL = "Mono-token added successfully."
134+
MONO_CREATE_SUCCESS_DETAIL = "Mono added successfully."
135135

136136
MONO_UPDATE_SUCCESS_CODE = 200
137-
MONO_UPDATE_SUCCESS_DETAIL = "Mono-token chanched successfully."
137+
MONO_UPDATE_SUCCESS_DETAIL = "Mono chanched successfully."
138138

139139
MONO_DELETE_SUCCESS_CODE = 204
140-
MONO_DELETE_SUCCESS_DETAIL = "Mono-token deleted successfully."
140+
MONO_DELETE_SUCCESS_DETAIL = "Mono deleted successfully."
141141

142142
MONO_CURRENCY_EXCEPTION_CODE = 400
143143
MONO_CURRENCY_EXCEPTION_DETAIL = "Incorrect currency pair."

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="1.1.5",
11+
version="1.1.8",
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)