server/dao/valkey/SessionDAO.go

41 lines
1.0 KiB
Go

package valkey
import (
"context"
"strconv"
"git.tek.govt.hu/dowerx/chat/server/config"
)
const SESSION_PREFIX string = "session:"
type SessionDAOVK struct {
vkDAO
}
func (d SessionDAOVK) Set(token string, id int) error {
cmd := (*d.vk).B().Set().Key(SESSION_PREFIX + token).Value(strconv.Itoa(id)).ExSeconds(int64(config.GetConfig().API.TokenLife)).Build()
return (*d.vk).Do(context.Background(), cmd).Error()
}
func (d SessionDAOVK) Get(token string) (int, error) {
cmd := (*d.vk).B().Get().Key(SESSION_PREFIX + token).Build()
result := (*d.vk).Do(context.Background(), cmd)
if err := result.Error(); err != nil {
return 0, err
}
id, err := result.AsInt64()
return int(id), err
}
func (d SessionDAOVK) Delete(token string) error {
cmd := (*d.vk).B().Del().Key(SESSION_PREFIX + token).Build()
return (*d.vk).Do(context.Background(), cmd).Error()
}
func (d SessionDAOVK) Bump(token string, time int) error {
cmd := (*d.vk).B().Expire().Key(SESSION_PREFIX + token).Seconds(int64(time)).Build()
return (*d.vk).Do(context.Background(), cmd).Error()
}