45 lines
734 B
Go

package main
import (
"gitea.seeseepuff.be/seeseemelk/mysqlite"
"log"
)
type Db struct {
db *mysqlite.Db
}
func NewDb(datasource string) *Db {
// Open a file-based database
db, err := mysqlite.OpenDb(datasource)
if err != nil {
log.Fatal(err)
}
// Apply migrations
err = db.MigrateDb(migrations, "migrations")
if err != nil {
log.Fatal(err)
}
return &Db{db: db}
}
func (db *Db) GetUsers() ([]User, error) {
var err error
users := make([]User, 0)
for row := range db.db.Query("select id, name from users").Range(&err) {
user := User{}
err = row.Scan(&user.ID, &user.Name)
if err != nil {
return nil, err
}
users = append(users, user)
}
if err != nil {
return nil, err
}
return users, nil
}