github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/singletons/session/helpers.go (about) 1 package session 2 3 import ( 4 singletonsI18n "github.com/taubyte/tau-cli/i18n/singletons" 5 "golang.org/x/exp/slices" 6 ) 7 8 func getKey[T any](key string) (value T, exist bool) { 9 keys, err := _session.keys() 10 if err != nil { 11 return 12 } 13 14 if !slices.Contains(keys, key) { 15 return 16 } 17 18 err = _session.Document().Get(key).Value(&value) 19 if err == nil { 20 return value, true 21 } 22 23 return 24 } 25 26 func setKey(key string, value interface{}) (err error) { 27 err = _session.Document().Get(key).Set(value).Commit() 28 if err != nil { 29 return singletonsI18n.SessionSettingKeyFailed(key, value, err) 30 } 31 32 return _session.root.Sync() 33 } 34 35 func deleteKey(key string) (err error) { 36 err = _session.Document().Get(key).Delete().Commit() 37 if err != nil { 38 return singletonsI18n.SessionDeletingKeyFailed(key, err) 39 } 40 41 return _session.root.Sync() 42 }