def post(self): session = Session() args = wallets_put_args.parse_args() user = auth.current_user() user_id = user.user_id wallet = Wallets(user_id=user_id, name=args['name'], uah=args['uah']) session.add(wallet) session.commit() return wallet, 200
def get_transactions(cls, request: Request, **kwargs): """ Get history of transactions """ login = request.get("login") period_starts = datetime.strptime(request.get("period_starts"), "%c") \ if request.get("period_starts", None) else None period_ends = datetime.strptime(request.get("period_ends"), "%c") \ if request.get("period_ends", None) else None return Wallets.get_transactions(login, period_starts, period_ends)
def transfer(cls, request: Request, **kwargs): """ Transfer funds from one wallet to another """ from_login = request.get("from_login") from_base_currency = request.get("from_base_currency", None) to_login = request.get("to_login") to_base_currency = request.get("to_base_currency", None) amount = int(request.get("amount", 0)) conversion_rate_uuid_1 = request.get("conversion_rate_uuid_1", None) conversion_rate_uuid_2 = request.get("conversion_rate_uuid_2", None) return Wallets.transfer(from_login, from_base_currency, to_login, to_base_currency, amount, conversion_rate_uuid_1, conversion_rate_uuid_2)
def create_wallet(): session = Session() data = request.get_json() try: wallet = Wallets(**data) except: return jsonify({"Message": "Invalid input"}), 405 # if not "owner_uid" != User.user_id: # abort(404, description="Wallet owner not found") session.add(wallet) session.commit() return jsonify({"Success": "Wallet has been created"}), 200
from models import Session, Users, Wallets, Transactions session = Session() user = Users(uid=1, email="*****@*****.**", first_name="First", last_name="Last") wallet_1 = Wallets(uid=1, name="My wallet", funds=90, owner=user) wallet_2 = Wallets(uid=2, name="My wallet", funds=110, owner=user) transaction = Transactions(uid=1, from_wallet=wallet_1, to_wallet=wallet_2, amount=10) session.add(user) session.add(wallet_1) session.add(wallet_2) session.add(transaction) session.commit() print(session.query(Users).all()) print(session.query(Wallets).all()) print(session.query(Transactions).all()) session.close()
def create(cls, request: Request, **kwargs): """ Creating new wallet """ login = request.get("login") base_currency = request.get("base_currency", None) return Wallets.create(login, base_currency)
def topup(cls, request: Request, **kwargs): """ Top up wallet's balance """ login = request.get("login") base_currency = request.get("base_currency", None) amount = int(request.get("amount", 0)) return Wallets.top_up(login, base_currency, amount)
def get_currencies(cls, request: Request, **kwargs): """ Retreiving list of supported currencies """ return Wallets.get_currencies()
def get_wallets(cls, request: Request, **kwargs): """ Retreiving wallet's data """ login = request.get("login") return Wallets.get_wallets(login)
def get(cls, request: Request, **kwargs): """ Retreiving wallet's data """ login = request.get("login") base_currency = request.get("base_currency", None) return Wallets.get(login, base_currency).describe()