def get_transactions(): """ GET /transactions :return: List of transactions of the user """ user = utils.get_user(request.authorization["username"]) transactions = utils.get_transactions(user) return jsonify(transactions)
def add_balance(): """ Requires authentication and json contains keys "amount" :return: Either 404 if user doesn't exists or String "Congratulations, balance was updated!" """ user = utils.get_user(request.authorization["username"]) amount = request.json["amount"] utils.add_balance(user, amount) return "Congratulations, balance was updated!"
def add_beneficiary(): """ Requires authentication and json contains keys "amount" json request { "name" "account_no" } :return: """ payee_info = request.json user = utils.get_user(request.authorization["username"]) utils.add_payee(payee_info, user) return "Successfully added beneficiary to the {user}".format( user=user.username)
def get_future_balance(): """ POST /future_balance json request contains date of future :return: List of transactions of the user """ date = request.json["date"] user = utils.get_user(request.authorization["username"]) balance = user.balance t = datetime.strptime(date, '%Y-%m-%d %H:%M:%S') days = (t - datetime.utcnow()).days interest = (balance * 4) / (100 * 365) balance = balance + interest return jsonify({"balance": balance})
def transfer_balance(): """ Requires authentication and json contains keys "amount" json requests{ "payee_name" "amount" "time" (Optional) } :return: """ user = utils.get_user(request.authorization["username"]) transfer_details = request.json if transfer_details.get("time"): t = datetime.strptime(transfer_details.get("time"), '%Y-%m-%d %H:%M:%S') scheduler.enqueue_at(t, transfer_balance_later, user, transfer_details) return "Transferring balance scheduled" if payee_exists(user.username, transfer_details["payee_name"] ) and user.balance > transfer_details["amount"]: utils.transfer_balance(transfer_details, user) return "Successfully transferred!" else: return "Sorry don't have sufficient balance!"
def get_balance(): user = utils.get_user(request.authorization["username"]) return jsonify({"balance": user.balance})
def payee_exists(username, payee_name): user = utils.get_user(username) utils.get_payee_by_user(user, payee_name) return True