From 0d0048d532e6b738653d3c4cd6bde36dcb1d6728 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Fri, 18 Jul 2014 16:26:58 +0100 Subject: Added initial user management functions --- user.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 user.go (limited to 'user.go') 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:]" + 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 -- cgit v1.2.3