electricity_bill_calc_service/cache/session.go

38 lines
749 B
Go

package cache
import (
"electricity_bill_calc/config"
"electricity_bill_calc/model"
"fmt"
"strings"
)
func SessionKey(keys ...string) string {
var b strings.Builder
b.WriteString("session")
for _, s := range keys {
fmt.Fprintf(&b, ":%s", s)
}
return b.String()
}
func CacheSession(session *model.Session) error {
key := SessionKey(session.Token)
return Cache(key, session, config.ServiceSettings.MaxSessionLife)
}
func RetreiveSession(token string) (*model.Session, error) {
key := SessionKey(token)
return Retreive[model.Session](key)
}
func HasSession(token string) (bool, error) {
key := SessionKey(token)
return Exists(key)
}
func ClearSession(token string) (bool, error) {
key := SessionKey(token)
return Delete(key)
}