package db import ( "database/sql" "log" "git.sr.ht/~evanj/security" _ "github.com/mattn/go-sqlite3" ) type DB struct { *sql.DB log *log.Logger sec securer } type securer interface { TokenCreate(val security.TokenMap) (string, error) TokenFrom(tokenString string) (security.TokenMap, error) HashCreate(salt, pass string) (string, error) HashCompare(salt, pass, hash string) error } func New(log *log.Logger, creds string, sec securer) (*DB, error) { conn, err := sql.Open("sqlite3", creds) if err != nil { return nil, err } db := &DB{ conn, log, sec, } return db, nil } func (db *DB) EnsureSetup() error { res, err := db.Exec(` CREATE TABLE cms_user ( ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT UNIQUE NOT NULL, HASH TEXT NOT NULL ); `) _ = res _ = err return nil }