aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/db/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'db/db.go')
-rw-r--r--db/db.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/db/db.go b/db/db.go
new file mode 100644
index 0000000..8213903
--- /dev/null
+++ b/db/db.go
@@ -0,0 +1,46 @@
+package db
+
+import (
+ "database/sql"
+ "log/slog"
+ "os"
+
+ _ "github.com/mattn/go-sqlite3"
+)
+
+var Logger *slog.Logger
+
+// Create a new database connection
+func New() *sql.DB {
+ conn, err := sql.Open("sqlite3", "./foo.db")
+ if err != nil {
+ Logger.Error("Failed to create database connection")
+ panic(err)
+ }
+
+ if err = InitTables(conn); err != nil {
+ panic(err)
+ }
+
+ return conn
+}
+
+func InitTables(conn *sql.DB) error {
+ _, err := conn.Exec(`
+ CREATE TABLE IF NOT EXISTS users (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ username TEXT UNIQUE NOT NULL,
+ salt BLOB NOT NULL,
+ saltedHash BLOB NOT NULL
+ )
+ `)
+
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func init() {
+ Logger = slog.New(slog.NewTextHandler(os.Stdout, nil))
+}