feat: income
This commit is contained in:
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