Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

51 linhas
1.0 KiB

  1. package utils
  2. import (
  3. "bytes"
  4. "encoding/gob"
  5. "fmt"
  6. "github.com/AFASystems/presence/internal/pkg/model"
  7. "github.com/boltdb/bolt"
  8. )
  9. func PersistBeacons(beacons *model.BeaconsList) error {
  10. buf := &bytes.Buffer{}
  11. enc := gob.NewEncoder(buf)
  12. if err := enc.Encode(beacons.Beacons); err != nil {
  13. fmt.Println("error in encoding: ", err)
  14. return err
  15. }
  16. key := []byte("beacons_list")
  17. err := model.Db.Update(func(tx *bolt.Tx) error {
  18. bucket, err := tx.CreateBucketIfNotExists(model.World)
  19. if err != nil {
  20. fmt.Println("error in creating a bucket")
  21. return err
  22. }
  23. return bucket.Put(key, buf.Bytes())
  24. })
  25. return err
  26. }
  27. func PersistSettings(settings *model.Settings) error {
  28. buf := &bytes.Buffer{}
  29. enc := gob.NewEncoder(buf)
  30. if err := enc.Encode(settings); err != nil {
  31. return err
  32. }
  33. key := []byte("settings")
  34. err := model.Db.Update(func(tx *bolt.Tx) error {
  35. bucket, err := tx.CreateBucketIfNotExists(model.World)
  36. if err != nil {
  37. return err
  38. }
  39. return bucket.Put(key, buf.Bytes())
  40. })
  41. return err
  42. }