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