implement svg interface in login and signup

This commit is contained in:
2024-09-13 15:18:36 -05:00
parent 8ba7ae206f
commit 3013e74bc5
32 changed files with 515 additions and 359 deletions

View File

@@ -2,86 +2,70 @@ package sql_driver
import (
"database/sql"
"fmt"
"github.com/google/uuid"
_ "github.com/mattn/go-sqlite3" // Import the SQLite3 driver
"log"
)
func InitTables() {
db, err := sql.Open("sqlite3", "./example.db")
func MakeTables(dbPath string) {
db, err := sql.Open("sqlite3", dbPath)
if err != nil {
log.Fatal(err)
}
defer db.Close()
createTable := `
PRAGMA journal_mode=WAL;
PRAGMA foreign_keys = ON;
// Create a table
createTableSQL := `
CREATE TABLE IF NOT EXISTS users (
id TEXT NOT NULL PRIMARY KEY,
name TEXT,
age INTEGER
);
`
_, err = db.Exec(createTableSQL)
CREATE TABLE IF NOT EXISTS customer (
id TEXT NOT NULL PRIMARY KEY,
max_nkode_len INTEGER NOT NULL,
min_nkode_len INTEGER NOT NULL,
distinct_sets INTEGER NOT NULL,
distinct_attributes INTEGER NOT NULL,
lock_out INTEGER NOT NULL,
expiration INTEGER NOT NULL,
attribute_values BLOB NOT NULL,
set_values BLOB NOT NULL
);
CREATE TABLE IF NOT EXISTS user (
id TEXT NOT NULL PRIMARY KEY,
username TEXT NOT NULL,
renew INT NOT NULL,
customer_id TEXT NOT NULL,
-- Enciphered Passcode
code TEXT NOT NULL,
mask TEXT NOT NULL,
-- Keypad Dimensions
attributes_per_key INT NOT NULL,
number_of_keys INT NOT NULL,
-- User Keys
alpha_key BLOB NOT NULL,
set_key BLOB NOT NULL,
pass_key BLOB NOT NULL,
mask_key BLOB NOT NULL,
salt BLOB NOT NULL,
max_nkode_len INT NOT NULL,
-- User Interface
idx_interface BLOB NOT NULL,
svg_id_interface BLOB NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers(id),
UNIQUE(customer_id, username)
);
CREATE TABLE IF NOT EXISTS svg_icon (
id INTEGER PRIMARY KEY AUTOINCREMENT,
svg TEXT NOT NULL
);
`
_, err = db.Exec(createTable)
if err != nil {
log.Fatalf("Error creating table: %s", err)
}
// Insert data into the table
insertUserSQL := `INSERT INTO users (id, name, age) VALUES (?, ?, ?)`
_, err = db.Exec(insertUserSQL, uuid.New(), "Alice", 30)
if err != nil {
log.Fatalf("Error inserting data: %s", err)
}
_, err = db.Exec(insertUserSQL, uuid.New(), "Bob", 25)
if err != nil {
log.Fatalf("Error inserting data: %s", err)
}
// Query the data
queryUserSQL := `SELECT id, name, age FROM users`
rows, err := db.Query(queryUserSQL)
if err != nil {
log.Fatalf("Error querying data: %s", err)
}
defer rows.Close()
for rows.Next() {
var id string
var name string
var age int
err = rows.Scan(&id, &name, &age)
if err != nil {
log.Fatalf("Error scanning data: %s", err)
}
fmt.Printf("User: ID=%s, Name=%s, Age=%d\n", id, name, age)
}
// Update data
updateUserSQL := `UPDATE users SET age = ? WHERE name = ?`
_, err = db.Exec(updateUserSQL, 35, "Alice")
if err != nil {
log.Fatalf("Error updating data: %s", err)
}
// Verify the update
fmt.Println("After update:")
rows, err = db.Query(queryUserSQL)
if err != nil {
log.Fatalf("Error querying data: %s", err)
}
defer rows.Close()
for rows.Next() {
var id string
var name string
var age int
err = rows.Scan(&id, &name, &age)
if err != nil {
log.Fatalf("Error scanning data: %s", err)
}
fmt.Printf("User: ID=%s, Name=%s, Age=%d\n", id, name, age)
log.Fatal(err)
}
}