30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
import database
|
|
from ..schemas.requests import *
|
|
from ..schemas.responses import *
|
|
from ..schemas.entities import *
|
|
|
|
|
|
def get_balance_transactions(data: dict):
|
|
items_per_page = 5
|
|
request = GetBalanceTransactionsRequest.model_validate(data)
|
|
page = max([request.page - 1, 0])
|
|
query = (database.BalanceTransaction.query
|
|
.filter(database.BalanceTransaction.user_id == request.user_id)
|
|
.order_by(database.BalanceTransaction.created_at.desc())
|
|
.offset(items_per_page * page)
|
|
.limit(items_per_page)
|
|
.all())
|
|
balance_transactions = [BalanceTransaction.model_validate(balance_transaction) for balance_transaction in query]
|
|
response = GetBalanceTransactionsResponse(balance_transactions=balance_transactions)
|
|
return response.to_dict()
|
|
|
|
|
|
def get_balance_info(data: dict):
|
|
request = GetBalanceInfoRequest.model_validate(data)
|
|
balance = (database.User.query
|
|
.filter_by(id=request.user_id)
|
|
.with_entities(database.User.balance)
|
|
.scalar())
|
|
response = GetBalanceInfoResponse(balance=balance)
|
|
return response.to_dict()
|