feat: income
This commit is contained in:
		@@ -15,5 +15,5 @@ from .billing import billing_router
 | 
			
		||||
from .task import task_router
 | 
			
		||||
from .work_shifts import work_shifts_router
 | 
			
		||||
from .statistics import statistics_router
 | 
			
		||||
from .expense import expense_router
 | 
			
		||||
from .transaction import transaction_router
 | 
			
		||||
from .shipping import shipping_router
 | 
			
		||||
 
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
							
								
								
									
										118
									
								
								routers/transaction.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								routers/transaction.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
from fastapi import APIRouter, Depends
 | 
			
		||||
 | 
			
		||||
from backend.dependecies import SessionDependency, CurrentUserDependency, PaginationDependency
 | 
			
		||||
from schemas.transaction import *
 | 
			
		||||
from services.auth import authorized_user
 | 
			
		||||
from services.transaction import TransactionsService
 | 
			
		||||
 | 
			
		||||
transaction_router = APIRouter(
 | 
			
		||||
    prefix="/transaction",
 | 
			
		||||
    tags=["transaction"],
 | 
			
		||||
    dependencies=[Depends(authorized_user)]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# region Expenses
 | 
			
		||||
 | 
			
		||||
@transaction_router.post(
 | 
			
		||||
    '/get-all',
 | 
			
		||||
    operation_id='get_all_transactions',
 | 
			
		||||
    response_model=GetAllTransactionsResponse,
 | 
			
		||||
)
 | 
			
		||||
async def get_all(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        pagination: PaginationDependency,
 | 
			
		||||
        request: GetAllTransactionsRequest,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).get_all(pagination, request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.post(
 | 
			
		||||
    '/update',
 | 
			
		||||
    operation_id='update_transaction',
 | 
			
		||||
    response_model=UpdateTransactionResponse,
 | 
			
		||||
)
 | 
			
		||||
async def update_transaction(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: UpdateTransactionRequest,
 | 
			
		||||
        user: CurrentUserDependency,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).update_transaction(user, request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.delete(
 | 
			
		||||
    '/delete/{transaction_id}',
 | 
			
		||||
    operation_id='delete_transaction',
 | 
			
		||||
    response_model=DeleteTransactionResponse,
 | 
			
		||||
)
 | 
			
		||||
async def delete_transaction(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        transaction_id: int,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).delete_transaction(transaction_id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Expense tags
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.get(
 | 
			
		||||
    '/get-all-tags',
 | 
			
		||||
    operation_id='get_all_transaction_tags',
 | 
			
		||||
    response_model=GetAllTransactionTagsResponse,
 | 
			
		||||
)
 | 
			
		||||
async def get_all_transaction_tags(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).get_all_tags()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.get(
 | 
			
		||||
    '/get-tags/{is_income}',
 | 
			
		||||
    operation_id='get_transaction_tags',
 | 
			
		||||
    response_model=GetTransactionTagsResponse,
 | 
			
		||||
)
 | 
			
		||||
async def get_transaction_tags(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        is_income: bool,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).get_tags(is_income)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.post(
 | 
			
		||||
    '/create-tag',
 | 
			
		||||
    operation_id='create_transaction_tag',
 | 
			
		||||
    response_model=UpdateTransactionTagResponse,
 | 
			
		||||
)
 | 
			
		||||
async def create_transaction_tag(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: CreateTransactionTagRequest,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).create_tag(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.post(
 | 
			
		||||
    '/update-tag',
 | 
			
		||||
    operation_id='update_transaction_tag',
 | 
			
		||||
    response_model=UpdateTransactionTagResponse,
 | 
			
		||||
)
 | 
			
		||||
async def update_transaction_tag(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: UpdateTransactionTagRequest,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).update_tag(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@transaction_router.delete(
 | 
			
		||||
    '/delete-tag/{tag_id}',
 | 
			
		||||
    operation_id='delete_transaction_tag',
 | 
			
		||||
    response_model=DeleteTransactionTagResponse,
 | 
			
		||||
)
 | 
			
		||||
async def update_transaction_tag(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        tag_id: int,
 | 
			
		||||
):
 | 
			
		||||
    return await TransactionsService(session).delete_tag(tag_id)
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
		Reference in New Issue
	
	Block a user