commit 18c53dc8bc5f6f9498e7997b940a1f95625e14fc
parent aacaaf2f49f2901e23bb2bfae03ac3fcad146bbf
Author: Joel-Haeberli <haebu@rubigen.ch>
Date: Wed, 8 May 2024 15:08:22 +0200
cli: integrate terminal activation
Diffstat:
2 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/cli/cli.go b/cli/cli.go
@@ -21,6 +21,7 @@ const ACTION_SETUP_SIMULATION = "sim"
const ACTION_REGISTER_PROVIDER = "rp"
const ACTION_REGISTER_TERMINAL = "rt"
const ACTION_DEACTIVATE_TERMINAL = "dt"
+const ACTION_ACTIVATE_TERMINAL = "at"
const ACTION_CONNECT_DB = "db"
const ACTION_QUIT = "q"
@@ -205,6 +206,35 @@ func deactivateTerminal() error {
return nil
}
+func activateTerminal() error {
+
+ if DB == nil {
+ return errors.New("connect to the database first (cmd: db)")
+ }
+
+ fmt.Println("You are about to activate a terminal which allows withdrawals. This will make the terminal operational.")
+ 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(),
+ ACTIVATE_TERMINAL,
+ tid,
+ )
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
func setupSimulation() error {
if DB == nil {
@@ -394,6 +424,8 @@ func dispatchCommand(cmd string) error {
err = registerWalleeTerminal()
case ACTION_DEACTIVATE_TERMINAL:
err = deactivateTerminal()
+ case ACTION_ACTIVATE_TERMINAL:
+ err = activateTerminal()
case ACTION_SETUP_SIMULATION:
err = setupSimulation()
default:
diff --git a/cli/db.go b/cli/db.go
@@ -3,6 +3,7 @@ package main
const INSERT_PROVIDER = "INSERT INTO c2ec.provider (name, payto_target_type, backend_base_url, backend_credentials) VALUES ($1,$2,$3,$4)"
const INSERT_TERMINAL = "INSERT INTO c2ec.terminal (access_token, description, provider_id) VALUES ($1,$2,$3)"
const DEACTIVATE_TERMINAL = "UPDATE c2ec.terminal SET active = false WHERE terminal_id=$1"
+const ACTIVATE_TERMINAL = "UPDATE c2ec.terminal SET active = true WHERE terminal_id=$1"
const GET_PROVIDER_BY_NAME = "SELECT * FROM c2ec.provider WHERE name=$1"
const GET_LAST_INSERTED_TERMINAL = "SELECT * FROM c2ec.terminal WHERE terminal_id = (SELECT MAX(terminal_id) FROM c2ec.terminal)"