summaryrefslogtreecommitdiff
path: root/cli/cli.go
diff options
context:
space:
mode:
Diffstat (limited to 'cli/cli.go')
-rw-r--r--cli/cli.go48
1 files changed, 43 insertions, 5 deletions
diff --git a/cli/cli.go b/cli/cli.go
index a2fecb8..35b8573 100644
--- a/cli/cli.go
+++ b/cli/cli.go
@@ -18,6 +18,7 @@ import (
const ACTION_HELP = "h"
const ACTION_REGISTER_PROVIDER = "rp"
const ACTION_REGISTER_TERMINAL = "rt"
+const ACTION_DEACTIVATE_TERMINAL = "dt"
const ACTION_CONNECT_DB = "db"
const ACTION_QUIT = "q"
@@ -37,6 +38,13 @@ var DB *pgx.Conn
func main() {
fmt.Println("What do you want to do?")
showHelp()
+ optionalPghost := os.Getenv("PGHOST")
+ if optionalPghost != "" {
+ err := connectDbUsingString(optionalPghost)
+ if err != nil {
+ fmt.Println("error while connecting to database, using connection string from PGHOST. error:", err.Error())
+ }
+ }
for {
err := dispatchCommand(read("Type command (term in brackets): "))
if err != nil {
@@ -80,7 +88,7 @@ func registerWalleeProvider() error {
}
credsEncoded := base64.StdEncoding.EncodeToString(creds)
- rows, err := DB.Query(
+ _, err = DB.Exec(
context.Background(),
INSERT_PROVIDER,
name,
@@ -91,7 +99,6 @@ func registerWalleeProvider() error {
if err != nil {
return err
}
- rows.Close()
return nil
}
@@ -135,7 +142,7 @@ func registerWalleeTerminal() error {
}
fmt.Println("adding terminal")
- rows, err = DB.Query(
+ _, err = DB.Exec(
context.Background(),
INSERT_TERMINAL,
hashedAccessToken,
@@ -145,7 +152,6 @@ func registerWalleeTerminal() error {
if err != nil {
return err
}
- rows.Close()
fmt.Println("looking up last inserted terminal")
rows, err = DB.Query(
@@ -168,6 +174,31 @@ func registerWalleeTerminal() error {
return nil
}
+func deactivateTerminal() error {
+
+ fmt.Println("You are about to deactivate terminal which allows withdrawals. This will make the terminal unusable.")
+ tuid := read("Terminal-User-Id: ")
+ parts := strings.Split(tuid, "-")
+ if len(parts) != 2 {
+ return errors.New("invalid terminal-user-id (format=[PROVIDER_NAME]-[NUMBER])")
+ }
+ tid, err := strconv.Atoi(parts[1])
+ if err != nil {
+ return err
+ }
+
+ _, err = DB.Exec(
+ context.Background(),
+ DEACTIVATE_TERMINAL,
+ tid,
+ )
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
func connectDatabase() error {
u := read("Username: ")
@@ -181,7 +212,11 @@ func connectDatabase() error {
d := read("Database: ")
connstring := PostgresConnectionString(u, pw, h, p, d)
- dbCfg, err := pgx.ParseConfig(connstring)
+ return connectDbUsingString(connstring)
+}
+
+func connectDbUsingString(connString string) error {
+ dbCfg, err := pgx.ParseConfig(connString)
if err != nil {
return err
}
@@ -197,6 +232,7 @@ func showHelp() error {
fmt.Println("register wallee provider (", ACTION_REGISTER_PROVIDER, ")")
fmt.Println("register wallee terminal (", ACTION_REGISTER_TERMINAL, ")")
+ fmt.Println("deactivate wallee terminal (", ACTION_DEACTIVATE_TERMINAL, ")")
fmt.Println("connect database (", ACTION_CONNECT_DB, ")")
fmt.Println("show help (", ACTION_HELP, ")")
fmt.Println("quit (", ACTION_QUIT, ")")
@@ -260,6 +296,8 @@ func dispatchCommand(cmd string) error {
err = registerWalleeProvider()
case ACTION_REGISTER_TERMINAL:
err = registerWalleeTerminal()
+ case ACTION_DEACTIVATE_TERMINAL:
+ err = deactivateTerminal()
default:
fmt.Println("unknown action")
}