diff options
Diffstat (limited to 'cli/cli.go')
-rw-r--r-- | cli/cli.go | 48 |
1 files changed, 43 insertions, 5 deletions
@@ -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") } |