feat: income

This commit is contained in:
2024-12-12 20:23:19 +04:00
parent daa34b2808
commit e5712224e1
16 changed files with 574 additions and 463 deletions

View File

@@ -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

View File

@@ -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
View 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