103 lines
2.4 KiB
Python
103 lines
2.4 KiB
Python
from fastapi import APIRouter, Depends
|
|
|
|
from backend.dependecies import SessionDependency, CurrentUserDependency, PaginationDependency
|
|
from schemas.expense import *
|
|
from services.auth import authorized_user
|
|
from services.expenses import ExpensesService
|
|
|
|
expense_router = APIRouter(
|
|
prefix="/expense",
|
|
tags=["expense"],
|
|
dependencies=[Depends(authorized_user)]
|
|
)
|
|
|
|
|
|
# region Expenses
|
|
|
|
@expense_router.get(
|
|
'/get-all',
|
|
operation_id='get_all_expenses',
|
|
response_model=GetAllExpensesResponse,
|
|
)
|
|
async def get_all(
|
|
session: SessionDependency,
|
|
pagination: PaginationDependency,
|
|
):
|
|
return await ExpensesService(session).get_all(pagination)
|
|
|
|
|
|
@expense_router.post(
|
|
'/update',
|
|
operation_id='update_expense',
|
|
response_model=UpdateExpenseResponse,
|
|
)
|
|
async def update_expense(
|
|
session: SessionDependency,
|
|
request: UpdateExpenseRequest,
|
|
user: CurrentUserDependency,
|
|
):
|
|
return await ExpensesService(session).update_expense(user, request)
|
|
|
|
|
|
@expense_router.delete(
|
|
'/delete/{expense_id}',
|
|
operation_id='delete_expense',
|
|
response_model=DeleteExpenseResponse,
|
|
)
|
|
async def delete_expense(
|
|
session: SessionDependency,
|
|
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 |