change returned parameter from interface{} to *gvar.Var for gsession.Sessio.Get; remove Get* function excluding Get for gsession.Session

This commit is contained in:
jflyfox
2021-09-17 11:15:00 +08:00
parent 28f70d52ee
commit 5383672d78
2 changed files with 11 additions and 123 deletions

View File

@ -9,6 +9,7 @@ package gsession
import (
"context"
"github.com/gogf/gf/container/gmap"
"github.com/gogf/gf/internal/intlog"
"time"
"github.com/gogf/gf/os/gcache"
@ -71,5 +72,9 @@ func (m *Manager) TTL() time.Duration {
// UpdateSessionTTL updates the ttl for given session.
func (m *Manager) UpdateSessionTTL(sessionId string, data *gmap.StrAnyMap) {
m.sessionData.Set(context.Background(), sessionId, data, m.ttl)
ctx := context.Background()
err := m.sessionData.Set(ctx, sessionId, data, m.ttl)
if err != nil {
intlog.Error(ctx, err)
}
}

View File

@ -15,7 +15,6 @@ import (
"github.com/gogf/gf/container/gmap"
"github.com/gogf/gf/container/gvar"
"github.com/gogf/gf/os/gtime"
)
// Session struct for storing single session data, which is bound to a single request.
@ -23,7 +22,7 @@ import (
// for functionality implements.
type Session struct {
id string // Session id.
ctx context.Context // Context for current session, note that: one session one context.
ctx context.Context // Context for current session. Please note that, session live along with context.
data *gmap.StrAnyMap // Session data.
dirty bool // Used to mark session is modified.
start bool // Used to mark session is started.
@ -251,7 +250,7 @@ func (s *Session) IsDirty() bool {
// Get retrieves session value with given key.
// It returns `def` if the key does not exist in the session if `def` is given,
// or else it returns nil.
func (s *Session) Get(key string, def ...interface{}) interface{} {
func (s *Session) Get(key string, def ...interface{}) *gvar.Var {
if s.id == "" {
return nil
}
@ -261,129 +260,13 @@ func (s *Session) Get(key string, def ...interface{}) interface{} {
intlog.Error(s.ctx, err)
}
if v != nil {
return v
return gvar.New(v)
}
if v := s.data.Get(key); v != nil {
return v
return gvar.New(v)
}
if len(def) > 0 {
return def[0]
return gvar.New(def[0])
}
return nil
}
func (s *Session) GetVar(key string, def ...interface{}) *gvar.Var {
return gvar.New(s.Get(key, def...), true)
}
func (s *Session) GetString(key string, def ...interface{}) string {
return s.GetVar(key, def...).String()
}
func (s *Session) GetBool(key string, def ...interface{}) bool {
return s.GetVar(key, def...).Bool()
}
func (s *Session) GetInt(key string, def ...interface{}) int {
return s.GetVar(key, def...).Int()
}
func (s *Session) GetInt8(key string, def ...interface{}) int8 {
return s.GetVar(key, def...).Int8()
}
func (s *Session) GetInt16(key string, def ...interface{}) int16 {
return s.GetVar(key, def...).Int16()
}
func (s *Session) GetInt32(key string, def ...interface{}) int32 {
return s.GetVar(key, def...).Int32()
}
func (s *Session) GetInt64(key string, def ...interface{}) int64 {
return s.GetVar(key, def...).Int64()
}
func (s *Session) GetUint(key string, def ...interface{}) uint {
return s.GetVar(key, def...).Uint()
}
func (s *Session) GetUint8(key string, def ...interface{}) uint8 {
return s.GetVar(key, def...).Uint8()
}
func (s *Session) GetUint16(key string, def ...interface{}) uint16 {
return s.GetVar(key, def...).Uint16()
}
func (s *Session) GetUint32(key string, def ...interface{}) uint32 {
return s.GetVar(key, def...).Uint32()
}
func (s *Session) GetUint64(key string, def ...interface{}) uint64 {
return s.GetVar(key, def...).Uint64()
}
func (s *Session) GetFloat32(key string, def ...interface{}) float32 {
return s.GetVar(key, def...).Float32()
}
func (s *Session) GetFloat64(key string, def ...interface{}) float64 {
return s.GetVar(key, def...).Float64()
}
func (s *Session) GetBytes(key string, def ...interface{}) []byte {
return s.GetVar(key, def...).Bytes()
}
func (s *Session) GetInts(key string, def ...interface{}) []int {
return s.GetVar(key, def...).Ints()
}
func (s *Session) GetFloats(key string, def ...interface{}) []float64 {
return s.GetVar(key, def...).Floats()
}
func (s *Session) GetStrings(key string, def ...interface{}) []string {
return s.GetVar(key, def...).Strings()
}
func (s *Session) GetInterfaces(key string, def ...interface{}) []interface{} {
return s.GetVar(key, def...).Interfaces()
}
func (s *Session) GetTime(key string, format ...string) time.Time {
return s.GetVar(key).Time(format...)
}
func (s *Session) GetGTime(key string, format ...string) *gtime.Time {
return s.GetVar(key).GTime(format...)
}
func (s *Session) GetDuration(key string, def ...interface{}) time.Duration {
return s.GetVar(key, def...).Duration()
}
func (s *Session) GetMap(key string, tags ...string) map[string]interface{} {
return s.GetVar(key).Map(tags...)
}
func (s *Session) GetMapDeep(key string, tags ...string) map[string]interface{} {
return s.GetVar(key).MapDeep(tags...)
}
func (s *Session) GetMaps(key string, tags ...string) []map[string]interface{} {
return s.GetVar(key).Maps(tags...)
}
func (s *Session) GetMapsDeep(key string, tags ...string) []map[string]interface{} {
return s.GetVar(key).MapsDeep(tags...)
}
func (s *Session) GetStruct(key string, pointer interface{}, mapping ...map[string]string) error {
return s.GetVar(key).Struct(pointer, mapping...)
}
func (s *Session) GetStructs(key string, pointer interface{}, mapping ...map[string]string) error {
return s.GetVar(key).Structs(pointer, mapping...)
}