Ejemplo n.º 1
0
def createaccount(name, password):
    new_account = Account(username=name)
    new_account.set_password(password)
    ak = new_account.create_api_key()
    new_account.save()
    msg = "Account successfully created, API api_key = {}".format(ak)
    return jsonify({'message':msg})
Ejemplo n.º 2
0
def login_menu():
    while True:
        try:
            user_input = view.login_menu()
            if int(user_input) == 3:
                view.program_end()
                sys.exit()
            elif int(user_input) == 2:
                username = view.username_inpt()
                pwd = util.hash_pass(view.password_inpt())
                user = Account.login(username, pwd)
                if user == None:
                    view.invalid_info()
                    return login_menu()
                return user
            elif int(user_input) == 1:
                user = Account()
                user.username = view.username_inpt()
                user.set_password(util.hash_pass(view.set_password_inpt()))
                user.balance = view.deposit_inpt()
                user.save()
                view.acc_created(user.username)
                return user
        except ValueError:
            view.choose_valid()
Ejemplo n.º 3
0
def seed(dbpath=DBPATH):
    ORM.dbpath = dbpath

    mike_bloom = Account(username='******', balance=10000.00)
    mike_bloom.set_password('password')
    mike_bloom.save()

    # trade for a purchase of 10 shares yesterday
    # trade for a sell of 5 shares today

    tsla_position = Position(ticker='tsla',
                             shares=5,
                             account_pk=mike_bloom.values['pk'])
    tsla_position.save()
Ejemplo n.º 4
0
def welcome_homepage():
    while True:  
        selection = view.welcome_screen()
        if selection not in ["1","2","3"]:
            view.improper_selection()
            continue 

        if selection == "1":
            username, balance, password, confirm_password = view.get_username(), view.add_balance(), view.get_password(), view.confirm_password() 

            if password != confirm_password:
                view.improper_password()
                continue  
            if not balance.isdigit() or int(balance) < 0:
                view.improper_balance()
                continue
            
            account = Account(username = username, balance = balance)
            hashed_pw = Account.set_password(account, password)
            account.save()
            logged_in_homepage(account)
            return 
        elif selection == "2":
            username, password = view.get_username(), view.get_password()
            logged_in_account = Account.login(username=username, password=password)
            
            if logged_in_account:
                logged_in_homepage(logged_in_account)
                return
            else:
                print("Invalid credentials supplied")
                continue
        elif selection == "3":
            view.goodbye()
            return
Ejemplo n.º 5
0
def create_account_selection():
    while True:
        newuser = Account()
        view.enter_user_name()
        username = input()
        newuser.username = username
        view.enter_password()
        password = getpass.getpass()
        newuser.origpassword = password
        newuser.set_password(password)
        #newuser.apikey=20
        newuser.set_apikey()
        newuser.balance = 0.00
        newuser.save()
        view.account_success_message()
        return newuser
Ejemplo n.º 6
0
def seed(dbpath=DBPATH):
    ORM.dbpath = dbpath
    
    mike_bloom = Account(username='******', balance=10000.00)
    mike_bloom.set_password('password')
    mike_bloom.save()

    # trade for a purchase of 10 shares yesterday
    # trade for a sell of 5 shares today

    buy_trade = Trade(accounts_pk = mike_bloom.pk, ticker='tsla', volume=10, price=100.0)
    sell_trade = Trade(accounts_pk=mike_bloom.pk, ticker='tsla', volume=5, price=200.0)
    buy_trade.save()
    sell_trade.save()

    tsla_position = Position(ticker='tsla', shares=5, accounts_pk=mike_bloom.pk)
    tsla_position.save()
Ejemplo n.º 7
0
def create_account():
    view.intro_create_acc()
    first = view.input_first()
    last = view.input_last()
    username = view.input_username()
    password = view.input_password(
    )  #this is the start of what will become the password hash
    balance = 0
    email = view.input_email()
    new_account = Account(first=first,
                          last=last,
                          username=username,
                          balance=balance,
                          email=email)
    #password_hash=password_hash - not used b/c save in set pw fucntion
    new_account.set_password(
        password)  #creates the password has which is missing in the above line
    if Account.from_username(username) is None:
        new_account.save(
        )  #save function to put the new account into the sql db
    else:
        raise view.UsernameUnavailableError
Ejemplo n.º 8
0
def createaccount(name, password):
    new_account = Account(username=name)
    new_account.set_password(password)
    new_account.save()
    msg = "Account successfully created"
    return jsonify({'message': msg})
Ejemplo n.º 9
0
def main():
    while True:
        views.generic_msg("Welcome to Terminal Trader !")
        selection = views.welcome_menu()
        if selection is None:  #Bad input
            views.generic_msg(
                "Please enter a number that corresponds to a stated option")
        elif selection == 3:  #Exit
            views.generic_msg("Bye: Thanks for using Terminal Trader")
            break
        elif selection == 1:  #Create account
            new_username = views.get_input("Username")
            new_password = views.get_input("Password")
            new_account = Account(username=new_username)
            new_account.set_password(new_password)
            new_account.save()
        elif selection == 2:  #Login
            login_username = views.get_input("Username")
            login_password = views.get_input("Password")
            if not Account.login(login_username, login_password):
                views.generic_msg(
                    "Failed to find an account for the given Username/Password, pls retry"
                )
            else:  #Store account pk for re-use
                pk = Account.login(login_username, login_password).pk
                while True:
                    choice = views.main_menu()
                    if choice is None:  #Bad input
                        views.generic_msg(
                            "Please enter a number that corresponds \
                                           to a stated option")
                    elif choice == 8:  #Exit
                        break
                    elif choice == 1:  #View Balance & Positions
                        positions_sub_menu(pk)
                    elif choice == 2:  #Deposit money
                        deposit_amount = float(
                            views.get_input("Deposit Amount"))
                        account_deposit = Account(pk=pk)
                        new_bal = account_deposit.deposit(deposit_amount)
                        account_deposit.save()
                        views.generic_msg("New Balance = {}".format(new_bal))
                    elif choice == 3:  #Look up stock price
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        quote = util.get_price(ticker)
                        if not quote:
                            views.generic_msg(
                                "The Ticker Symbol entered does not exist")
                        else:
                            views.stock_price(ticker, quote)
                    elif choice == 4:  #Look up ticker from Co. name
                        co_name = views.get_input("Please enter Company Name")
                        companies = util.get_ticker(co_name)
                        if not companies:
                            views.generic_msg(
                                "No matches for input Company Name")
                        else:
                            for co in companies:
                                views.show_companies(co)
                    elif choice == 5:  #Buy stock
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        shares_buy = views.get_input(
                            "Please enter the number of shares to buy")
                        buy_txn = Account(pk=pk)
                        buy_txn.buy(ticker, shares_buy)
                        views.generic_msg("Buy transaction complete")
                    elif choice == 6:  #Sell stock
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        shares_sell = views.get_input(
                            "Please enter the number of shares to sell")
                        sell_txn = Account(pk=pk)
                        sell_txn.sell(ticker, shares_sell)
                        views.generic_msg("Sell transaction complete")
                    elif choice == 7:  #View Trade History
                        trades_sub_menu(pk)
Ejemplo n.º 10
0
def main():
    while True:
        selection = views.welcome_menu()
        if selection is None:
            #Bad input
            views.generic_msg(
                "Please enter a number that corresponds to a stated option")
        elif selection == 3:
            #Exit
            views.generic_msg("Bye: Thanks for using Terminal Trader")
            break
        elif selection == 1:
            #Create account
            new_username = views.get_input("Username")
            new_password = views.get_input("Password")
            new_account = Account(username=new_username)
            new_account.set_password(new_password)
            new_account.save()
        elif selection == 2:
            #Login
            login_username = views.get_input("Username")
            login_password = views.get_input("Password")
            if not Account.login(login_username, login_password):
                views.generic_msg(
                    "Failed to find an account for the given Username/Password, pls retry"
                )
            else:
                #Retrieve account balance & pk for re-use
                balance = Account()
                current_bal, pk = balance.get_bal(login_username,
                                                  login_password)
                while True:
                    choice = views.main_menu()
                    if choice is None:
                        #Bad input
                        views.generic_msg(
                            "Please enter a number that corresponds to a stated option"
                        )
                    elif choice == 7:
                        #Exit
                        break
                    elif choice == 1:  #View Balance & Positions
                        views.generic_msg(
                            "Your current balance = {}".format(current_bal))
                        while True:
                            position_choice = views.position_menu()
                            if position_choice is None:
                                #Bad input
                                views.generic_msg(
                                    "Please enter a number that corresponds to a stated option"
                                )
                            elif position_choice == 3:
                                #Exit
                                break
                            elif position_choice == 1:
                                #Retrieve and display a given position, taking in a ticker symbol
                                ticker = views.get_input(
                                    "Please enter a Ticker Symbol")
                                user_position = Account(pk=pk)
                                position = user_position.get_position_for(
                                    ticker)
                                views.show_positions(position)
                            elif position_choice == 2:
                                #Retrieve and display all positions
                                user_positions = Account(pk=pk)
                                positions = user_positions.get_positions()
                                for position in positions:
                                    views.show_positions(position)
                    elif choice == 2:  #Deposit money
                        deposit_amount = float(
                            views.get_input("Deposit Amount"))
                        account_deposit = Account()
                        new_bal = account_deposit.deposit(
                            login_username, login_password, deposit_amount)
                        account_deposit.save()
                        views.generic_msg("New Balance = {}".format(new_bal))
                    elif choice == 3:  #Look up stock price
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        print(util.get_price(ticker))
                    elif choice == 4:  #Buy stock
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        shares_buy = views.get_input(
                            "Please enter the number of shares to buy")

                    elif choice == 5:  #Sell stock
                        ticker = views.get_input(
                            "Please enter a Ticker Symbol")
                        shares_sell = views.get_input(
                            "Please enter the number of shares to sell")
                    elif choice == 6:  #View Trade History
                        while True:
                            trade_choice = views.trades_menu()
                            if trade_choice is None:
                                #Bad input
                                views.generic_msg(
                                    "Please enter a number that corresponds to a stated option"
                                )
                            elif trade_choice == 3:
                                #Exit
                                break
                            elif trade_choice == 1:
                                #Retrieve and display trades re a give ticker symbol
                                ticker = views.get_input(
                                    "Please enter a Ticker Symbol")
                                user_trade = Account(pk=pk)
                                trades = user_trade.get_trades_for(ticker)
                                views.show_trades(trades)
                            elif trade_choice == 2:
                                #Retrieve and display all trades
                                user_trades = Account(pk=pk)
                                trades = user_trades.get_trades()
                                for trade in trades:
                                    views.show_trades(trade)