File size: 1,074 Bytes
48ab300
81ec8d6
 
 
 
 
 
 
 
 
 
 
 
e130ddf
81ec8d6
 
 
 
 
 
 
 
 
 
 
e130ddf
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
from typing import List
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from app.model.transaction import Transaction as TransactionModel
from app.schema.index import TransactionResponse
from app.engine.postgresdb import get_db_session

transaction_router = r = APIRouter(prefix="/api/v1/transactions", tags=["transactions"])


@r.get(
    "/{user_id}",
    response_model=List[TransactionResponse],
    responses={
        200: {"description": "New user created"},
        400: {"description": "Bad request"},
        204: {"description": "No content"},
        500: {"description": "Internal server error"},
    },
)
async def get_transactions(user_id: int, db: AsyncSession = Depends(get_db_session)):
    """
    Retrieve all transactions.
    """
    result = await TransactionModel.get_by_user(db, user_id)
    all_rows = result.all()
    if len(all_rows) == 0:
        raise HTTPException(status_code=status.HTTP_204_NO_CONTENT, detail="No transactions found for this user")
    return all_rows