예제 #1
0
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)
예제 #2
0
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!"
예제 #3
0
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)
예제 #4
0
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})
예제 #5
0
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!"
예제 #6
0
def get_balance():
    user = utils.get_user(request.authorization["username"])
    return jsonify({"balance": user.balance})
예제 #7
0
def payee_exists(username, payee_name):
    user = utils.get_user(username)
    utils.get_payee_by_user(user, payee_name)
    return True