|
- package persistence
-
- import (
- "bytes"
- "encoding/gob"
- "log"
-
- "github.com/AFASystems/presence/internal/pkg/model"
- "github.com/boltdb/bolt"
- )
-
- func LoadState(db *bolt.DB, ctx *model.AppContext) {
- err := db.View(func(tx *bolt.Tx) error {
- bucket := tx.Bucket(model.World)
- if bucket == nil {
- return nil
- }
-
- decode := func(key string, dest interface{}) {
- val := bucket.Get([]byte(key))
- if val == nil {
- return
- }
- buf := bytes.NewBuffer(val)
- if err := gob.NewDecoder(buf).Decode(dest); err != nil {
- log.Fatal("decode error: ", err)
- }
- }
-
- decode("beaconsList", &ctx.Beacons.Beacons)
- decode("buttonsList", &ctx.ButtonsList)
- decode("settings", &ctx.Settings)
- return nil
- })
-
- if err != nil {
- log.Fatal(err)
- }
- }
|