summaryrefslogtreecommitdiff
path: root/system/db
diff options
context:
space:
mode:
Diffstat (limited to 'system/db')
-rw-r--r--system/db/config.go36
-rw-r--r--system/db/init.go17
2 files changed, 39 insertions, 14 deletions
diff --git a/system/db/config.go b/system/db/config.go
index f1d1215..ecddd54 100644
--- a/system/db/config.go
+++ b/system/db/config.go
@@ -169,3 +169,39 @@ func PutConfig(key string, value interface{}) error {
func ConfigCache(key string) interface{} {
return configCache.Get(key)
}
+
+// LoadCacheConfig loads the config into a cache to be accessed by ConfigCache()
+func LoadCacheConfig() error {
+ c, err := ConfigAll()
+ if err != nil {
+ return err
+ }
+
+ // convert json => map[string]interface{} => url.Values
+ var kv map[string]interface{}
+ err = json.Unmarshal(c, &kv)
+ if err != nil {
+ return err
+ }
+
+ data := make(url.Values)
+ for k, v := range kv {
+ switch v.(type) {
+ case []string:
+ s := v.([]string)
+ for i := range s {
+ if i == 0 {
+ data.Set(k, s[i])
+ }
+
+ data.Add(k, s[i])
+ }
+ default:
+ data.Set(k, fmt.Sprintf("%v", v))
+ }
+ }
+
+ configCache = data
+
+ return nil
+}
diff --git a/system/db/init.go b/system/db/init.go
index 98ba056..769137d 100644
--- a/system/db/init.go
+++ b/system/db/init.go
@@ -1,10 +1,8 @@
package db
import (
- "encoding/json"
"log"
- "github.com/ponzu-cms/ponzu/system/admin/config"
"github.com/ponzu-cms/ponzu/system/item"
"github.com/boltdb/bolt"
@@ -57,18 +55,9 @@ func Init() {
}
}
- // seed db with configs structure if not present
- b := tx.Bucket([]byte("__config"))
- if b.Get([]byte("settings")) == nil {
- j, err := json.Marshal(&config.Config{})
- if err != nil {
- return err
- }
-
- err = b.Put([]byte("settings"), j)
- if err != nil {
- return err
- }
+ err := LoadCacheConfig()
+ if err != nil {
+ return err
}
clientSecret := ConfigCache("client_secret").(string)