From 8f4e0320fde8127bd0b184a0530cbb2d337fcaa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Thu, 11 Aug 2022 21:04:33 +0800 Subject: [PATCH] =?UTF-8?q?enhance(session):=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=94=A8=E4=BA=8E=E6=8E=A7=E5=88=B6=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E7=9A=84=E5=87=BD=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cache/session.go | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/cache/session.go b/cache/session.go index 6a54037..2fefb7d 100644 --- a/cache/session.go +++ b/cache/session.go @@ -1,42 +1,22 @@ package cache import ( - "electricity_bill_calc/global" "electricity_bill_calc/model" "fmt" "time" - - "github.com/go-redis/redis/v8" - "github.com/vmihailenco/msgpack/v5" ) func CacheSession(session *model.Session) error { key := fmt.Sprintf("session:%s", session.Token) - serializedSession, err := msgpack.Marshal(session) - - if err != nil { - return err - } - - validRemains := time.Until(session.ExpiresAt) - cmd := global.RedisConn.SetNX(global.Ctx, key, serializedSession, validRemains) - return cmd.Err() + return Cache(key, session, 2*time.Hour) } func RetreiveSession(token string) (*model.Session, error) { key := fmt.Sprintf("session:%s", token) - result, err := global.RedisConn.Get(global.Ctx, key).Result() - if err != nil { - if err == redis.Nil { - return nil, nil - } else { - return nil, err - } - } - session := &model.Session{} - err = msgpack.Unmarshal([]byte(result), session) - if err != nil { - return nil, err - } - return session, nil + return Retreive[model.Session](key) +} + +func HasSession(token string) (bool, error) { + key := fmt.Sprintf("session:%s", token) + return Exists(key) }