Adapting transaction to the resource archi

This commit is contained in:
2025-02-21 16:08:59 +01:00
parent 950090c762
commit ed37298a74
2 changed files with 10 additions and 9 deletions

View File

@@ -31,6 +31,6 @@ fixtures_transaction = [
{ {
"account_path": "/Accounts/Asset/Current Assets/Checking Account/", "account_path": "/Accounts/Asset/Current Assets/Checking Account/",
"start_date": date(1970, 1, 5), "start_date": date(1970, 1, 5),
"count": 50 "count": 200
}, },
] ]

View File

@@ -4,43 +4,44 @@ from fastapi import APIRouter, HTTPException, Depends
from fastapi_pagination import Page from fastapi_pagination import Page
from fastapi_pagination.ext.sqlmodel import paginate from fastapi_pagination.ext.sqlmodel import paginate
from transaction.models import Transaction, TransactionCreate, TransactionRead, TransactionUpdate
from db import SessionDep from db import SessionDep
from transaction.models import TransactionCreate, TransactionRead, TransactionUpdate
from transaction.resource import TransactionResource
from user.manager import get_current_user from user.manager import get_current_user
router = APIRouter() router = APIRouter()
@router.post("") @router.post("")
def create_transaction(transaction: TransactionCreate, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead: def create_transaction(transaction: TransactionCreate, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead:
result = Transaction.create(transaction, session) result = TransactionResource.create(transaction, session)
return result return result
@router.get("") @router.get("")
def read_transactions(session: SessionDep, current_user=Depends(get_current_user)) -> Page[TransactionRead]: def read_transactions(session: SessionDep, current_user=Depends(get_current_user)) -> Page[TransactionRead]:
return paginate(session, Transaction.list()) return paginate(session, TransactionResource.list())
@router.get("/{transaction_id}") @router.get("/{transaction_id}")
def read_transaction(transaction_id: UUID, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead: def read_transaction(transaction_id: UUID, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead:
transaction = Transaction.get(session, transaction_id) transaction = TransactionResource.get(session, transaction_id)
if not transaction: if not transaction:
raise HTTPException(status_code=404, detail="Transaction not found") raise HTTPException(status_code=404, detail="Transaction not found")
return transaction return transaction
@router.put("/{transaction_id}") @router.put("/{transaction_id}")
def update_transaction(transaction_id: UUID, transaction: TransactionUpdate, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead: def update_transaction(transaction_id: UUID, transaction: TransactionUpdate, session: SessionDep, current_user=Depends(get_current_user)) -> TransactionRead:
db_transaction = Transaction.get(session, transaction_id) db_transaction = TransactionResource.get(session, transaction_id)
if not db_transaction: if not db_transaction:
raise HTTPException(status_code=404, detail="Transaction not found") raise HTTPException(status_code=404, detail="Transaction not found")
transaction_data = transaction.model_dump(exclude_unset=True) transaction_data = transaction.model_dump(exclude_unset=True)
transaction = Transaction.update(session, db_transaction, transaction_data) transaction = TransactionResource.update(session, db_transaction, transaction_data)
return transaction return transaction
@router.delete("/{transaction_id}") @router.delete("/{transaction_id}")
def delete_transaction(transaction_id: UUID, session: SessionDep, current_user=Depends(get_current_user)): def delete_transaction(transaction_id: UUID, session: SessionDep, current_user=Depends(get_current_user)):
transaction = Transaction.get(session, transaction_id) transaction = TransactionResource.get(session, transaction_id)
if not transaction: if not transaction:
raise HTTPException(status_code=404, detail="Transaction not found") raise HTTPException(status_code=404, detail="Transaction not found")
Transaction.delete(session, transaction) TransactionResource.delete(session, transaction)
return {"ok": True} return {"ok": True}