Priority/backend/db.go
2023-12-21 11:17:35 +00:00

68 lines
1.1 KiB
Go

package main
import (
"encoding/json"
"fmt"
"log"
scribble "github.com/nanobox-io/golang-scribble"
)
type DB struct {
Db *scribble.Driver
}
func InitDb(dbPath string) *DB {
var err error
var db = &DB{}
if dbPath == "" {
dbPath = "DB"
}
db.Db, err = scribble.New(dbPath, nil)
if err != nil {
fmt.Println("Error", err)
}
log.Printf("App: %+v", db)
return db
}
func (db *DB) Write(table string, key string, value interface{}) error {
err := db.Db.Write(table, key, value)
if err != nil {
fmt.Println("Error", err)
return err
}
return nil
}
func (db *DB) Read(table string, key string, value interface{}) error {
err := db.Db.Read(table, key, value)
if err != nil {
fmt.Println("Error", err)
return err
}
return nil
}
func (db *DB) loadHeats() []Heat {
records, err := db.Db.ReadAll("Heat")
if err != nil {
fmt.Printf("read error: %+v", err)
}
heats := make([]Heat, 0)
for _, record := range records {
var heat Heat
err = json.Unmarshal([]byte(record), &heat)
if err != nil {
fmt.Printf("decode error: %+v", err)
}
heats = append(heats, heat)
}
return heats
}