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 {
return nil
}
session, err := serializer.UnSerialize(bytes)
session := &model.Session{}
err = serializer.UnSerialize(bytes, session)
if err != nil {
return nil
}

View File

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