about summary refs log tree commit diff
path: root/nix/templates/goapp/backend/db.go
blob: fd3605aa38b54104490771676a1abd8c9843b992 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"database/sql"
	"log"

	_ "github.com/mattn/go-sqlite3"
)

const create string = `
CREATE TABLE IF NOT EXISTS users (
	id INTEGER NOT NULL PRIMARY KEY,
	created_at DATETIME NOT NULL,
	name TEXT,
	passwordHash TEXT
);
`

type State struct {
	db       *sql.DB      // the database storing the "business data"
	sessions *SqliteStore // the database storing sessions
}

func NewState() (*State, error) {
	db, err := sql.Open("sqlite3", databasePath)
	if err != nil {
		log.Println("Error opening the db: ", err)
		return nil, err
	}
	if _, err := db.Exec(create); err != nil {
		log.Println("Error creating the tables: ", err)
		return nil, err
	}
	return &State{
		db: db,
	}, nil
}