Пример #1
0
def get_account(current_user, account_id):
    if int(current_user.type) != User.Type.admin or int(
            current_user.type) != User.Type.bank_teller:
        user_account = Accounts.get_user_account(current_user.id)
        result = account_schema.dump(user_account)
        return jsonify(result.data)
    else:
        account = Accounts.query.filter_by(id=account_id)
        result = account_schema.dump(account)
        return jsonify(result.data)
Пример #2
0
def check_balance(current_user, account_id):
    if account_id:
        account = Accounts.query.filter_by(id=account_id,
                                           user_id=current_user.id)
        result = account_schema.dump(account)
        return jsonify(result.data)
    return response('failed', 'check account id and try again', 200)
Пример #3
0
def load_all_accounts(current_user):
    if int(current_user.type) != User.Type.admin or int(
            current_user.type) != User.Type.bank_teller:
        return response('unauthorised', 'Cannot perform operation', 401)
    all_accounts = Accounts.get_all()
    result = account_schema.dump(all_accounts)
    return jsonify(result.data)
Пример #4
0
def withdraw(current_user, account_id):
    if account_id is not None:
        account_number = request.json.get('account_number')
        amount = request.json.get('amount')
        account = Accounts.query.filter_by(
            account_number=account_number, user_id=current_user.id).first(
            )  ## TODO: modify query to get current users account
        if account:
            amount_to_withdraw = (int(amount))
            if amount_to_withdraw > account.balance:
                return "cannot withdraw more than balance"
            else:
                account.balance = account.balance - amount_to_withdraw
                account.save()
                account = Accounts.get_user_account(current_user.id)
                result = account_schema.dump(account)
                return jsonify(result.data)
Пример #5
0
def deposit_to_account(current_user, account_id):
    if int(current_user.type) != User.Type.admin or int(
            current_user.type) != User.Type.bank_teller:
        return response('unauthorised', 'Cannot perform operation', 401)
    if account_id is not None:
        account_number = request.json.get('account_number')
        amount = request.json.get('amount')
        client_id = request.json.get('user_id')
        account = Accounts.query.filter_by(account_number=account_number,
                                           user_id=client_id).first()
        if account:
            amount_to_deposit = (int(amount))
            account.balance = account.balance + amount_to_deposit
            account.save()
            account = Account.get_user_account(current_user.id)
            result = account_schema.dump(account)
            return jsonify(result.data)
        return "invalid account details do not match"