feat: additional expenses
This commit is contained in:
		@@ -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
									
								
							
							
						
						
									
										49
									
								
								routers/expense.py
									
									
									
									
									
										Normal 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)
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user