From 5874be563d6af89471029b8be228c865ca477d08 Mon Sep 17 00:00:00 2001 From: Alex Stevenson Date: Wed, 30 Jul 2025 22:34:10 -0400 Subject: [PATCH] Reworking the get/create setup for Users. Seeeeems to be working. --- main.go | 97 +++++++++++++++++++++++++++++++++++------------------- rpgqui.db | Bin 12288 -> 12288 bytes 2 files changed, 63 insertions(+), 34 deletions(-) diff --git a/main.go b/main.go index cfd81fe..6f87722 100644 --- a/main.go +++ b/main.go @@ -9,42 +9,55 @@ import ( _ "github.com/mattn/go-sqlite3" ) -type active_record interface { - init(string, int) bool - create() bool - read() bool - update() bool - delete() bool +type User struct { + id int64 + name string } -type ActiveSqliteRow struct { - id int - table_name string - columns []string +func create_user(db *sql.DB, name string) (User) { + s := prep_query(db, "INSERT INTO users (name) VALUES (?)") + res, err := s.Exec(name) + + check(err) + + var u User + + id, _ := res.LastInsertId() + + u.id = id + u.name = name + + return u } +func get_user(db *sql.DB, name string) (User) { + s := prep_query(db, "SELECT * FROM users WHERE name = ? LIMIT 1") + res, err := s.Query(name) + + check(err) + + var u User + + res.Next() + res.Scan(&u.id, &u.name) + res.Close() + + if u.id == 0 { + return create_user(db, name) + } else { + return u + } +} + +// Blerk. Start here with a get/create and see where +// that goes... type Entity struct { - id int - user_id int + id int64 + user_id int64 name string spawn_line string } -type User struct { - id int - name string -} - -func prep_query(db *sql.DB, q string) (*sql.Stmt){ - statement, err := db.Prepare(q) - - if err != nil { - log.Println(err) - log.Println(statement) - } - - return statement -} func check(e error) { if e != nil { @@ -52,22 +65,38 @@ func check(e error) { } } +func prep_query(db *sql.DB, q string) (*sql.Stmt){ + statement, err := db.Prepare(q) + + check(err) + + return statement +} + + func reset_database(db *sql.DB) { - dat, _ := os.ReadFile("setup.sql") + dat, _ := os.ReadFile("setup.sql") queries := strings.Split(string(dat), ";") - for i, q := range queries { - log.Println(i) - - res, err := db.Exec(q) + for _, q := range queries { + _, err := db.Exec(q) check(err) - - log.Println(res) } } + func main() { db, _ := sql.Open("sqlite3", "rpgqui.db") reset_database(db) + + var u User + u = get_user(db, "Monqui") +log.Printf("ID: %d, name: %s", u.id, u.name) + u = get_user(db, "dug") +log.Printf("ID: %d, name: %s", u.id, u.name) + u = get_user(db, "Gary") +log.Printf("ID: %d, name: %s", u.id, u.name) + u = get_user(db, "Jimbo") +log.Printf("ID: %d, name: %s", u.id, u.name) } diff --git a/rpgqui.db b/rpgqui.db index 8719cc33a13e59ae007a8bca0d3a955cb011eb11..7ab800c76dbde3e16638417c91e8b5027413dc6e 100644 GIT binary patch delta 150 zcmZojXh@hKEx3?@fq@x_VIXOujxpoHjR{Nmd06;wG4Oxof6M=b|JG(ffm8fu94yQX z;$E4#N%`!|%nYLLiA9xcOw0_zDW&P0jLZy@zWI5DrJ1}Svjo5fGQst#5vLab