diff --git a/pkg/modules/keyvalue/keyvalue.go b/pkg/modules/keyvalue/keyvalue.go index d2765875e..5474b0993 100644 --- a/pkg/modules/keyvalue/keyvalue.go +++ b/pkg/modules/keyvalue/keyvalue.go @@ -17,8 +17,30 @@ package keyvalue +import ( + "code.vikunja.io/api/pkg/modules/keyvalue/memory" +) + type Storage interface { Put(key string, value interface{}) (err error) Get(key string) (value interface{}, err error) Del(key string) (err error) } + +var store Storage + +func InitStorage() { + store = memory.NewStorage() +} + +func Put(key string, value interface{}) error { + return store.Put(key, value) +} + +func Get(key string) (value interface{}, err error) { + return store.Get(key) +} + +func Del(key string) (err error) { + return store.Del(key) +} diff --git a/pkg/modules/keyvalue/memory/memory.go b/pkg/modules/keyvalue/memory/memory.go index 17a58884c..2c253733a 100644 --- a/pkg/modules/keyvalue/memory/memory.go +++ b/pkg/modules/keyvalue/memory/memory.go @@ -24,6 +24,12 @@ type Storage struct { mutex sync.Mutex } +func NewStorage() *Storage { + s := &Storage{} + s.store = make(map[string]interface{}) + return s +} + func (s *Storage) Put(key string, value interface{}) (err error) { s.mutex.Lock() defer s.mutex.Unlock()