Create initial backend (#7)
Closes #3 Reviewed-on: #7
This commit was merged in pull request #7.
This commit is contained in:
44
backend/db.go
Normal file
44
backend/db.go
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user