feat: balance and reward
This commit is contained in:
4
queries/balance/api/__init__.py
Normal file
4
queries/balance/api/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from .requests import (
|
||||
get_balance_transactions,
|
||||
get_balance_info
|
||||
)
|
||||
29
queries/balance/api/requests.py
Normal file
29
queries/balance/api/requests.py
Normal file
@@ -0,0 +1,29 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user