From 68b06ce53c63486e740ab5d3c21e11f82c87902f Mon Sep 17 00:00:00 2001 From: Matt Theissen Date: Sun, 18 Jul 2021 20:53:49 -0500 Subject: [PATCH] Worked on withdraw. Added exact search as well as term search. --- ddbank.sh | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/ddbank.sh b/ddbank.sh index a64c1ad..29e8f79 100755 --- a/ddbank.sh +++ b/ddbank.sh @@ -6,7 +6,7 @@ bal="00.00" ## SSH Config ssh_user="theissenm" ssh_host="knd-db01.kniod.corp" - +db_ssh="ssh $ssh_user@$ssh_host" # Functions @@ -21,16 +21,16 @@ new_account() { case $yn in # If user selects yes. Insert their username and a timestamp into the database. - [Yy] ) ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"insert into account (username,timestamp) values ('$user1','now');\"" &>/dev/null || echo "Username already taken."; + [Yy] ) $db_ssh "psql -U ddbank -d ddbank -c \"insert into account (username,timestamp) values ('$user1','now');\"" &>/dev/null || echo "Username already taken."; # Sets the user's id as the variable. - user1_id=$(ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"select id from account where username='$user1';\"" | awk 'FNR == 3 {print}') + user1_id=$($db_ssh "psql -U ddbank -d ddbank -c \"select id from account where username='$user1';\"" | awk 'FNR == 3 {print}') # Gives the user the starting balance. - ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"insert into balance (id,balance) values ('$user1_id',$bal);\"" &>/dev/null + $db_ssh "psql -U ddbank -d ddbank -c \"insert into balance (id,balance) values ('$user1_id',$bal);\"" &>/dev/null # Pulls the user's account and ID for awk'ing - user_account=$(ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"select id,username from account;\"" | grep $user1_id) + user_account=$($db_ssh "psql -U ddbank -d ddbank -c \"select id,username from account;\"" | grep $user1_id) echo "" acc_id=$(echo "$user_account" | awk -F\| '{print $1}') acc_name=$(echo "$user_account" | awk -F\| '{print $2}') @@ -47,7 +47,7 @@ new_account() { } list_user() { - ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"select * from account;\"" + $db_ssh "psql -U ddbank -d ddbank -c \"select * from account;\"" } list_balance() { @@ -57,16 +57,20 @@ list_balance() { do echo "" echo "1) List all users balances." - echo "2) User Search" + echo "2) Exact User Search" + echo "3) User Search" echo "0) Go back." echo "" read -n1 -p "*Balance Menu: Select from the above: " ii echo "" case $ii in - 1 ) ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id);\"" ;; - 2 ) read -p "Enter the user account name: " bal_user - bal_user1=$(ssh $ssh_user@$ssh_host "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id);\"") + 1 ) clear + $db_ssh "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id);\"" ;; + 2 ) read -p "Enter the user account name: " ex_mat + $db_ssh "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id) where username='$ex_mat';\"" + 3 ) read -p "Enter search term: " bal_user + bal_user1=$($db_ssh "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id);\"") echo "$bal_user1" | awk 'FNR == 1 {print}' echo "$bal_user1" | grep -iE "$bal_user" echo "" ;; @@ -75,7 +79,7 @@ list_balance() { done } -dwt_menu() { +bank_menu() { clear while true do @@ -85,11 +89,19 @@ do echo "3) Transfer" echo "0) Go Back" echo "" - read -n1 -p "*Banking Menu: Select from the above: " ii_dwt + read -n1 -p "*Banking Menu: Select from the above: " ii_bank echo "" - case $ii_dwt in + case $ii_bank in [0q] ) break ;; + 1 ) read -p "Withdraw from user: " bank_user + read -p "Amount to withdraw: " bank_wth_amt + echo "$bal_user2" | awk 'FNR == 1 {print}' + bank_1_amt=$($db_ssh "psql -U ddbank -d ddbank -c \"select id,username,balance from account join balance using (id) where username='$bank_user';\"") + new_amt="$bank_wth_amt - $bank_1_amt" + $db_ssh "psql -U ddbank -d ddbank -c \"update accounts set balance = '$new_amt' where username = '$bank_user';\"" ;; + + esac done } @@ -97,9 +109,9 @@ done clear while true do - # Menu + # Main Menu echo "" - echo "DDBank Menu: " + echo "DDBank Main Menu: " echo "1) Create new user account." echo "2) List user accounts." echo "3) List user(s) balance." @@ -112,7 +124,7 @@ do 1 ) new_account ;; 2 ) list_user ;; 3 ) list_balance ;; - 4 ) dwt_menu ;; + 4 ) bank_menu ;; 9 ) clear ;; 0 ) break ;; * ) clear ;;