diff options
author | Steve Manuel <nilslice@gmail.com> | 2017-01-16 12:46:34 -0800 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2017-01-16 12:46:34 -0800 |
commit | b67aa10ca519107ae43520aa46b45601549a7332 (patch) | |
tree | 470a41fac21f9d08d2329b15728ddf22364009a7 /system/db/addon.go | |
parent | 957926591fd8fc2adacf04f410e5127dec259c85 (diff) |
minor optimization in db Updates, added gzip responses for API requests, added better CORS control
Diffstat (limited to 'system/db/addon.go')
-rw-r--r-- | system/db/addon.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/system/db/addon.go b/system/db/addon.go index f4621fa..a145293 100644 --- a/system/db/addon.go +++ b/system/db/addon.go @@ -24,6 +24,9 @@ func Addon(key string) ([]byte, error) { err := store.View(func(tx *bolt.Tx) error { b := tx.Bucket([]byte("__addons")) + if b == nil { + return bolt.ErrBucketNotFound + } val := b.Get([]byte(key)) @@ -56,12 +59,16 @@ func SetAddon(data url.Values, kind interface{}) error { v, err := json.Marshal(kind) + k := data.Get("addon_reverse_dns") + if k == "" { + name := data.Get("addon_name") + return fmt.Errorf(`Addon "%s" has no identifier to use as key.`, name) + } + err = store.Update(func(tx *bolt.Tx) error { b := tx.Bucket([]byte("__addons")) - k := data.Get("addon_reverse_dns") - if k == "" { - name := data.Get("addon_name") - return fmt.Errorf(`Addon "%s" has no identifier to use as key.`, name) + if b == nil { + return bolt.ErrBucketNotFound } err := b.Put([]byte(k), v) @@ -84,6 +91,10 @@ func AddonAll() [][]byte { err := store.View(func(tx *bolt.Tx) error { b := tx.Bucket([]byte("__addons")) + if b == nil { + return bolt.ErrBucketNotFound + } + err := b.ForEach(func(k, v []byte) error { all = append(all, v) @@ -107,6 +118,9 @@ func AddonAll() [][]byte { func DeleteAddon(key string) error { err := store.Update(func(tx *bolt.Tx) error { b := tx.Bucket([]byte("__addons")) + if b == nil { + bolt.ErrBucketNotFound + } if err := b.Delete([]byte(key)); err != nil { return err |