refactor: SerializerAdapter support any struct

This commit is contained in:
weloe
2023-08-10 01:09:45 +08:00
parent a3d97bece9
commit 981bb5a0c3
3 changed files with 15 additions and 14 deletions

View File

@@ -613,7 +613,8 @@ func (e *Enforcer) sessionUnSerialize(v interface{}) *model.Session {
if err != nil { if err != nil {
return nil return nil
} }
session, err := serializer.UnSerialize(bytes) session := &model.Session{}
err = serializer.UnSerialize(bytes, session)
if err != nil { if err != nil {
return nil return nil
} }

View File

@@ -2,7 +2,6 @@ package persist
import ( import (
"encoding/json" "encoding/json"
"github.com/weloe/token-go/model"
) )
type JsonAdapter struct { type JsonAdapter struct {
@@ -13,15 +12,18 @@ func NewJsonAdapter() *JsonAdapter {
return &JsonAdapter{NewDefaultAdapter()} return &JsonAdapter{NewDefaultAdapter()}
} }
func (j *JsonAdapter) Serialize(session *model.Session) ([]byte, error) { func (j *JsonAdapter) Serialize(data interface{}) ([]byte, error) {
return json.Marshal(session) serializedData, err := json.Marshal(data)
}
func (j *JsonAdapter) UnSerialize(bytes []byte) (*model.Session, error) {
s := &model.Session{}
err := json.Unmarshal(bytes, s)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return s, nil return serializedData, nil
}
func (j *JsonAdapter) UnSerialize(data []byte, result interface{}) error {
err := json.Unmarshal(data, &result)
if err != nil {
return err
}
return nil
} }

View File

@@ -1,9 +1,7 @@
package persist package persist
import "github.com/weloe/token-go/model"
type SerializerAdapter interface { type SerializerAdapter interface {
Adapter Adapter
Serialize(*model.Session) ([]byte, error) Serialize(data interface{}) ([]byte, error)
UnSerialize([]byte) (*model.Session, error) UnSerialize([]byte, interface{}) error
} }