improve package gsession

This commit is contained in:
John Guo
2020-12-07 20:39:52 +08:00
parent 0aa82ad020
commit 60ec59fa4a

View File

@ -108,7 +108,13 @@ func (s *Session) Set(key string, value interface{}) error {
}
// Sets batch sets the session using map.
// Deprecated, use SetMap instead.
func (s *Session) Sets(data map[string]interface{}) error {
return s.SetMap(data)
}
// SetMap batch sets the session using map.
func (s *Session) SetMap(data map[string]interface{}) error {
s.init()
if err := s.manager.storage.SetMap(s.id, data, s.manager.ttl); err != nil {
if err == ErrorDisabled {
@ -122,16 +128,18 @@ func (s *Session) Sets(data map[string]interface{}) error {
}
// Remove removes key along with its value from this session.
func (s *Session) Remove(key string) error {
func (s *Session) Remove(keys ...string) error {
if s.id == "" {
return nil
}
s.init()
if err := s.manager.storage.Remove(s.id, key); err != nil {
if err == ErrorDisabled {
s.data.Remove(key)
} else {
return err
for _, key := range keys {
if err := s.manager.storage.Remove(s.id, key); err != nil {
if err == ErrorDisabled {
s.data.Remove(key)
} else {
return err
}
}
}
s.dirty = true