diff options
Diffstat (limited to 'persistence')
-rw-r--r-- | persistence/sessions.go | 33 | ||||
-rw-r--r-- | persistence/sessions_test.go | 4 |
2 files changed, 37 insertions, 0 deletions
diff --git a/persistence/sessions.go b/persistence/sessions.go index 18d748e..dc5de46 100644 --- a/persistence/sessions.go +++ b/persistence/sessions.go @@ -40,6 +40,9 @@ type Session struct { RawMessages bool `yaml:":rawmessages"` AsciiArrows bool `yaml:":asciiarrows"` MUC bool `yaml:":muc"` + OOBMode bool `yaml:":oobmode"` + Carbons bool `yaml:":carbons"` + HideIds bool `yaml:":hideids"` } var configKeys = []string{ @@ -48,6 +51,9 @@ var configKeys = []string{ "rawmessages", "asciiarrows", "muc", + "oobmode", + "carbons", + "hideids", } var sessionDB *SessionsYamlDB @@ -122,6 +128,12 @@ func (s *Session) Get(key string) (string, error) { return fromBool(s.AsciiArrows), nil case "muc": return fromBool(s.MUC), nil + case "oobmode": + return fromBool(s.OOBMode), nil + case "carbons": + return fromBool(s.Carbons), nil + case "hideids": + return fromBool(s.HideIds), nil } return "", errors.New("Unknown session property") @@ -172,6 +184,27 @@ func (s *Session) Set(key string, value string) (string, error) { } s.MUC = b return value, nil + case "oobmode": + b, err := toBool(value) + if err != nil { + return "", err + } + s.OOBMode = b + return value, nil + case "carbons": + b, err := toBool(value) + if err != nil { + return "", err + } + s.Carbons = b + return value, nil + case "hideids": + b, err := toBool(value) + if err != nil { + return "", err + } + s.HideIds = b + return value, nil } return "", errors.New("Unknown session property") diff --git a/persistence/sessions_test.go b/persistence/sessions_test.go index c553e95..e79de24 100644 --- a/persistence/sessions_test.go +++ b/persistence/sessions_test.go @@ -48,6 +48,7 @@ func TestSessionToMap(t *testing.T) { Timezone: "klsf", RawMessages: true, MUC: true, + OOBMode: true, } m := session.ToMap() sample := map[string]string{ @@ -56,6 +57,9 @@ func TestSessionToMap(t *testing.T) { "muc": "true", "rawmessages": "true", "asciiarrows": "false", + "oobmode": "true", + "carbons": "false", + "hideids": "false", } if !reflect.DeepEqual(m, sample) { t.Errorf("Map does not match the sample: %v", m) |