summaryrefslogtreecommitdiff
path: root/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'user.go')
-rw-r--r--user.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/user.go b/user.go
new file mode 100644
index 0000000..e262151
--- /dev/null
+++ b/user.go
@@ -0,0 +1,42 @@
+package main
+
+import "fmt"
+import "github.com/mxk/go-sqlite/sqlite3"
+
+type User struct {
+ id int
+ name string
+ isAdmin bool
+}
+
+func createUser(db *sqlite3.Conn, name string, isAdmin bool) {
+
+ args := sqlite3.NamedArgs{"$a": name, "$b": isAdmin}
+ sql := "INSERT INTO users (name, admin) VALUES ($a, $b)"
+
+ db.Exec(sql, args)
+
+
+}
+func getUserForId(db *sqlite3.Conn, id int) User {
+
+ args := sqlite3.NamedArgs{"$a": id}
+ sql := "SELECT * FROM users WHERE id = $a"
+ s, err := db.Query(sql, args)
+ row := make(sqlite3.RowMap)
+
+ for ; err == nil ; err = s.Next() {
+ var rowid int
+ s.Scan(&rowid, row) // Assigns 1st column to rowid, the rest to row
+ fmt.Println(rowid, row) // Prints "1 map[a:1 b:demo c:<nil>]"
+ fmt.Println(row["name"])
+
+ user := User{id:rowid, name:row["name"].(string), isAdmin:row["admin"].(bool)}
+ return user
+ }
+
+ //If we get here there are no matching users
+ return User{id:0, name:"", isAdmin:false}
+
+
+} \ No newline at end of file