feat: tags for expenses, filters by tags in statistics

This commit is contained in:
2024-11-27 15:49:33 +04:00
parent 48c88cb93a
commit 88ce256850
7 changed files with 271 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
from fastapi import APIRouter, Depends
from backend.dependecies import SessionDependency, CurrentUserDependency, PaginationDependency
from schemas.expense import GetAllExpensesResponse, UpdateExpenseResponse, UpdateExpenseRequest, DeleteExpenseResponse
from schemas.expense import *
from services.auth import authorized_user
from services.expenses import ExpensesService
@@ -12,6 +12,8 @@ expense_router = APIRouter(
)
# region Expenses
@expense_router.get(
'/get-all',
operation_id='get_all_expenses',
@@ -47,3 +49,55 @@ async def delete_expense(
expense_id: int,
):
return await ExpensesService(session).delete_expense(expense_id)
# endregion
# region Expense tags
@expense_router.get(
'/get-all-tags',
operation_id='get_all_expense_tags',
response_model=GetAllExpenseTagsResponse,
)
async def get_all(
session: SessionDependency,
):
return await ExpensesService(session).get_all_tags()
@expense_router.post(
'/create-tag',
operation_id='create_expense_tag',
response_model=UpdateExpenseTagResponse,
)
async def update_expense(
session: SessionDependency,
request: CreateExpenseTagRequest,
):
return await ExpensesService(session).create_tag(request)
@expense_router.post(
'/update-tag',
operation_id='update_expense_tag',
response_model=UpdateExpenseTagResponse,
)
async def update_expense(
session: SessionDependency,
request: UpdateExpenseTagRequest,
):
return await ExpensesService(session).update_tag(request)
@expense_router.delete(
'/delete-tag/{tag_id}',
operation_id='delete_expense_tag',
response_model=DeleteExpenseTagResponse,
)
async def update_expense(
session: SessionDependency,
tag_id: int,
):
return await ExpensesService(session).delete_tag(tag_id)
# endregion