2014-12-01 10:35:38 -05:00

98 lines
2.8 KiB
Python

import bank_models
import bank_views
import sys
from datetime import datetime
import curses
class Bank:
def __init__ ( self ):
# initialize the View class
self.view = bank_views.View( screen, curses )
self.db = bank_models.db()
if 'dev' in sys.argv:
self.view.showDev = True
self.view_loader( "welcome" )
def view_loader( self, view_name, passing=None ):
re = getattr( self.view , view_name )( passing )
if type( re ) == dict:
if '_return_to' in re:
return getattr( self, re['_return_to'] )( re )
if '_next' in re:
self.view_loader( re['_next'] )
return re
def sign_up( self, obj ):
check = self.db.create_user( obj['name'], obj['password'], obj['permission'] )
# if user name is available
if check:
message = obj['name'] + " please login"
self.view_loader( "login", message )
else:
message = "User name taken"
self.view_loader( "sign_up", message )
def login( self, obj ):
self.user = bank_models.Users( obj['name'], obj['password'] )
if self.user.name:
self.view.update_user( [ obj['name'] ] )
getattr( self, self.permission + '_home' )()
else:
message = "Invalid login"
self.login( self.view.login( message ) )
def logOut( self, message=False ):
self.view.update_user( [ None ] )
self.view_loader( "welcome" )
def client_home( self, start=0 ):
self.user.list_accounts( start )
self.view_loader( 'client_home', array )
def view_account( self, number=None, array={} ):
self.account = model.Account( number )
self.amount.user_id = self.user.id
if array != {}:
array.update( self.account )
else:
array = self.account
self.view_loader( 'view_account', array )
def account_withdraw( self, amount ):
check = self.account.withdraw( amount )
if check:
self.view_loader( 'view_account', "Withdraw -" + amount )
else:
self.view_account( None, { 'message': "Insufficient funds."} )
def account_deposit( self, amount ):
self.account.deposit( amount )
self.view_loader( 'view_account', "Deposit +" + amount )
def account_transfer( self, amount, to_number ):
check = self.account.transfer( amount, to_number )
if check:
self.view_loader( 'view_account', "Transfered -" + amount + " to " + to_number )
else:
self.view_account( None, { 'message': "Insufficient funds."})
try:
curses.wrapper( Bank )
except KeyboardInterrupt:
print( "Got KeyboardInterrupt exception. Exiting..." )
exit()