fix: fix pagination info schema and expense router responses
This commit is contained in:
@@ -47,8 +47,8 @@ class PaginationSchema(BaseSchema):
|
|||||||
|
|
||||||
|
|
||||||
class PaginationInfoSchema(BaseSchema):
|
class PaginationInfoSchema(BaseSchema):
|
||||||
total_pages: int = 0
|
total_pages: int
|
||||||
total_items: int = 0
|
total_items: int
|
||||||
|
|
||||||
|
|
||||||
class BaseEnumSchema(BaseSchema):
|
class BaseEnumSchema(BaseSchema):
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ class ExpensesService(BaseService):
|
|||||||
if not total_records:
|
if not total_records:
|
||||||
return GetAllExpensesResponse(
|
return GetAllExpensesResponse(
|
||||||
expenses=[],
|
expenses=[],
|
||||||
pagination_info=PaginationInfoSchema()
|
pagination_info=PaginationInfoSchema(
|
||||||
|
total_pages=0,
|
||||||
|
total_items=0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
total_items = total_records
|
total_items = total_records
|
||||||
total_pages = math.ceil(total_records / pagination.items_per_page)
|
total_pages = math.ceil(total_records / pagination.items_per_page)
|
||||||
@@ -120,7 +123,7 @@ class ExpensesService(BaseService):
|
|||||||
async def create_tag(self, request: CreateExpenseTagRequest) -> CreateExpenseTagResponse:
|
async def create_tag(self, request: CreateExpenseTagRequest) -> CreateExpenseTagResponse:
|
||||||
tag = await self.get_tag_by_name(request.tag.name)
|
tag = await self.get_tag_by_name(request.tag.name)
|
||||||
if tag:
|
if tag:
|
||||||
return UpdateExpenseResponse(ok=False, message='Ошибка. Такой тег уже есть.')
|
return CreateExpenseTagResponse(ok=False, message='Такой тег уже есть.')
|
||||||
|
|
||||||
tag_dict = request.tag.model_dump()
|
tag_dict = request.tag.model_dump()
|
||||||
stmt = (
|
stmt = (
|
||||||
@@ -129,16 +132,16 @@ class ExpensesService(BaseService):
|
|||||||
)
|
)
|
||||||
await self.session.execute(stmt)
|
await self.session.execute(stmt)
|
||||||
await self.session.commit()
|
await self.session.commit()
|
||||||
return UpdateExpenseResponse(ok=True, message='Тег успешно создан.')
|
return CreateExpenseTagResponse(ok=True, message='Тег успешно создан.')
|
||||||
|
|
||||||
async def update_tag(self, request: UpdateExpenseTagRequest) -> UpdateExpenseTagResponse:
|
async def update_tag(self, request: UpdateExpenseTagRequest) -> UpdateExpenseTagResponse:
|
||||||
tag = await self.get_tag_by_name(request.tag.name)
|
tag = await self.get_tag_by_name(request.tag.name)
|
||||||
if tag:
|
if tag:
|
||||||
return UpdateExpenseTagResponse(ok=False, message='Ошибка. Тег с таким названием уже есть.')
|
return UpdateExpenseTagResponse(ok=False, message='Тег с таким названием уже есть.')
|
||||||
|
|
||||||
tag = await self.get_tag_by_id(request.tag.id)
|
tag = await self.get_tag_by_id(request.tag.id)
|
||||||
if not tag:
|
if not tag:
|
||||||
return UpdateExpenseTagResponse(ok=False, message='Ошибка. Тег не найден.')
|
return UpdateExpenseTagResponse(ok=False, message='Тег не найден.')
|
||||||
|
|
||||||
tag_dict = request.tag.model_dump()
|
tag_dict = request.tag.model_dump()
|
||||||
del tag_dict['id']
|
del tag_dict['id']
|
||||||
@@ -149,14 +152,14 @@ class ExpensesService(BaseService):
|
|||||||
)
|
)
|
||||||
await self.session.execute(stmt)
|
await self.session.execute(stmt)
|
||||||
await self.session.commit()
|
await self.session.commit()
|
||||||
return UpdateExpenseResponse(ok=True, message='Тег успешно изменен.')
|
return UpdateExpenseTagResponse(ok=True, message='Тег успешно изменен.')
|
||||||
|
|
||||||
async def delete_tag(self, tag_id: int) -> DeleteExpenseTagResponse:
|
async def delete_tag(self, tag_id: int) -> DeleteExpenseTagResponse:
|
||||||
tag = await self.get_tag_by_id(tag_id)
|
tag = await self.get_tag_by_id(tag_id)
|
||||||
if not tag:
|
if not tag:
|
||||||
return DeleteExpenseTagResponse(ok=False, message='Ошибка. Тег не найден.')
|
return DeleteExpenseTagResponse(ok=False, message='Тег не найден.')
|
||||||
if len(tag.expenses) > 0:
|
if len(tag.expenses) > 0:
|
||||||
return DeleteExpenseTagResponse(ok=False, message='Ошибка. Тег прикреплен к записи о расходах.')
|
return DeleteExpenseTagResponse(ok=False, message='Тег прикреплен к записи о расходах.')
|
||||||
|
|
||||||
stmt = (
|
stmt = (
|
||||||
delete(ExpenseTag)
|
delete(ExpenseTag)
|
||||||
|
|||||||
@@ -149,7 +149,10 @@ class PayrollService(BaseService):
|
|||||||
if not total_records:
|
if not total_records:
|
||||||
return GetPaymentRecordsResponse(
|
return GetPaymentRecordsResponse(
|
||||||
payment_records=[],
|
payment_records=[],
|
||||||
pagination_info=PaginationInfoSchema()
|
pagination_info=PaginationInfoSchema(
|
||||||
|
total_pages=0,
|
||||||
|
total_items=0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
total_items = total_records
|
total_items = total_records
|
||||||
total_pages = math.ceil(total_records / pagination.items_per_page)
|
total_pages = math.ceil(total_records / pagination.items_per_page)
|
||||||
|
|||||||
Reference in New Issue
Block a user