feat: balance and reward
This commit is contained in:
		
							
								
								
									
										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