feat: additional expenses

This commit is contained in:
2024-11-26 01:36:59 +04:00
parent 81d5261af1
commit 48c88cb93a
15 changed files with 318 additions and 80 deletions

View File

@@ -14,4 +14,5 @@ from .time_tracking import time_tracking_router
from .billing import billing_router
from .task import task_router
from .work_shifts import work_shifts_router
from .statistics import statistics_router
from .statistics import statistics_router
from .expense import expense_router

49
routers/expense.py Normal file
View File

@@ -0,0 +1,49 @@
from fastapi import APIRouter, Depends
from backend.dependecies import SessionDependency, CurrentUserDependency, PaginationDependency
from schemas.expense import GetAllExpensesResponse, UpdateExpenseResponse, UpdateExpenseRequest, DeleteExpenseResponse
from services.auth import authorized_user
from services.expenses import ExpensesService
expense_router = APIRouter(
prefix="/expense",
tags=["expense"],
dependencies=[Depends(authorized_user)]
)
@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)

View File

@@ -7,7 +7,7 @@ from backend.session import get_session
from schemas.statistics import GetProfitChartDataRequest, GetProfitChartDataResponse, GetProfitTableDataResponse, \
GetProfitTableDataRequest
from services.auth import authorized_user
from services.statistics import StatisticsService
from services.statistics import ProfitStatisticsService
statistics_router = APIRouter(
prefix="/statistics",
@@ -25,7 +25,7 @@ async def get_profit_chart_data(
session: Annotated[AsyncSession, Depends(get_session)],
request: GetProfitChartDataRequest
):
return await StatisticsService(session).get_profit_chart_data(request)
return await ProfitStatisticsService(session).get_profit_chart_data(request)
@statistics_router.post(
@@ -37,4 +37,4 @@ async def get_profit_table_data(
session: Annotated[AsyncSession, Depends(get_session)],
request: GetProfitTableDataRequest
):
return await StatisticsService(session).get_profit_table_data(request)
return await ProfitStatisticsService(session).get_profit_table_data(request)