From ec1197f83cfa064ea8170d4b9f8a9ec021f88a87 Mon Sep 17 00:00:00 2001 From: bodqhrohro Date: Thu, 5 Dec 2019 21:56:12 +0200 Subject: Add /config command --- persistence/sessions.go | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'persistence') diff --git a/persistence/sessions.go b/persistence/sessions.go index d15c4f3..85c84be 100644 --- a/persistence/sessions.go +++ b/persistence/sessions.go @@ -23,7 +23,8 @@ type SessionsMap struct { // Session is a key-values subtree type Session struct { - Login string `yaml:":login"` + Login string `yaml:":login"` + Timezone string `yaml:":timezone"` } var sessionDB *SessionsYamlDB @@ -75,3 +76,35 @@ func initYamlDB(path string, dataPtr *SessionsMap) (*SessionsYamlDB, error) { Data: dataPtr, }, nil } + +// Get retrieves a session value +func (s *Session) Get(key string) (string, error) { + switch key { + case "timezone": + return s.Timezone, nil + } + + return "", errors.New("Unknown session property") +} + +// ToMap converts the session to a map +func (s *Session) ToMap() map[string]string { + m := make(map[string]string) + for _, configKey := range []string{"timezone"} { + value, _ := s.Get(configKey) + m[configKey] = value + } + + return m +} + +// Set sets a session value +func (s *Session) Set(key string, value string) (string, error) { + switch key { + case "timezone": + s.Timezone = value + return value, nil + } + + return "", errors.New("Unknown session property") +} -- cgit v1.2.3