def create_new_account():
    first_name = get_non_blank("First name", False)
    last_name = get_non_blank("Last name", False)

    while True:
        username = get_non_blank("Username", False)
        password = get_non_blank("Password", get_hide())

        hashed_password = sha256(password.encode('ascii')).hexdigest()
        reply = send_info(
            "create", "{} {} {} {}".format(first_name, last_name, username,
                                           hashed_password))
        flag = reply[0]
        answer = reply[1]

        print(answer)
        if flag == 0:
            return 0
        elif flag == -1:
            while True:
                answer = input("Try again? (y/n): ").lower()
                if answer == "n":
                    return 0
                elif not answer == "y":
                    print("Not an answer")
                else:
                    break
        else:
            return 1
def balance_service(session):
    reply = send_info("balance", session)
    flag = reply[0]
    answer = reply[1]

    print(answer)
    if flag == 0:
        return 0
    return 1
def logout_service(session):
    reply = send_info("logout", session)
    flag = reply[0]
    answer = reply[1]

    print(answer)
    if flag == 0:
        return 0
    return 1
def withdraw_service(session):
    withdraw_amount = get_amount()
    if withdraw_amount > 0:
        reply = send_info("withdraw", "{} {}".format(session, withdraw_amount))
        flag = reply[0]
        answer = reply[1]

        print(answer)
        if flag == 0:
            return 0
        return 1
    return 0
예제 #5
0
def deposit_service(session):
    deposit_amount = get_amount()

    if deposit_amount > 0:
        reply = send_info("deposit", "{} {}".format(session, deposit_amount))
        flag = reply[0]
        answer = reply[1]

        print(answer)
        if flag == 0:
            return 0
        return 1
    return 0
예제 #6
0
def login_service():
    username = get_non_blank("Username", False)
    password = get_non_blank("Password", get_hide())

    hashed_password = sha256(password.encode('ascii')).hexdigest()
    reply = send_info("login", "{} {}".format(username, hashed_password))
    flag = reply[0]
    answer = reply[1]

    if flag == 0:
        print(answer)
        return 0
    return answer
예제 #7
0
def transfer_service(session):
    transfer_amount = get_amount()
    account_number = get_account()

    if transfer_amount > 0 and account_number > 0:
        reply = send_info("transfer", "{} {} {}".format(session, account_number, transfer_amount))
        flag = reply[0]
        answer = reply[1]

        print(answer)
        if flag == 0:
            return 0
        return 1
    return 0
예제 #8
0
def password_service(session):
    hide = get_hide()
    old_password = get_non_blank("Current Password", hide)
    new_password = get_non_blank("New Password", hide)

    hashed_old = sha256(old_password.encode('ascii')).hexdigest()
    hashed_new = sha256(new_password.encode('ascii')).hexdigest()
    reply = send_info("changepass", "{} {} {}".format(session, hashed_old,
                                                      hashed_new))

    flag = reply[0]
    answer = reply[1]

    print(answer)
    if flag == 0:
        return 0
    return 1
def transaction_service(session):
    reply = send_info("transactions", session)
    flag = reply[0]
    answer = reply[1]

    if flag == 0:
        print(answer)
        return 0

    if not answer:
        print("No transactions have been made yet")
        return 0

    try:
        for t in answer:
            print("{0}: ${1:.2f}".format(t[0], float(t[1])))
        return 1
    except ValueError:
        print("Error in viewing transaction history")
        return 0
def run_client_driver():
    sock = connect()
    if sock:
        run_app()
        send_info("", "")
        sock.close()