get current session info
This commit is contained in:
parent
476e5edf38
commit
c59fbc0864
6 changed files with 84 additions and 26 deletions
|
|
@ -5,10 +5,11 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
CreateRefreshToken(token *Session) error
|
||||
ReadRefreshToken(tokenUuid string) (Session, error)
|
||||
InvalidateRefreshToken(refreshUuid string) error
|
||||
type repository interface {
|
||||
createRefreshToken(token *Session) error
|
||||
readRefreshToken(tokenUuid string) (Session, error)
|
||||
invalidateRefreshToken(refreshUuid string) error
|
||||
getCurrentSession(sessionUuid string) (Session, error)
|
||||
}
|
||||
|
||||
type repo struct {
|
||||
|
|
@ -19,11 +20,11 @@ func newRepository(db *gorm.DB) *repo {
|
|||
return &repo{db: db}
|
||||
}
|
||||
|
||||
func (r *repo) CreateRefreshToken(token *Session) error {
|
||||
func (r *repo) createRefreshToken(token *Session) error {
|
||||
return r.db.Create(token).Error
|
||||
}
|
||||
|
||||
func (r *repo) ReadRefreshToken(tokenUuid string) (Session, error) {
|
||||
func (r *repo) readRefreshToken(tokenUuid string) (Session, error) {
|
||||
var tokenData Session
|
||||
|
||||
if err := r.db.
|
||||
|
|
@ -36,9 +37,15 @@ func (r *repo) ReadRefreshToken(tokenUuid string) (Session, error) {
|
|||
return tokenData, nil
|
||||
}
|
||||
|
||||
func (r *repo) InvalidateRefreshToken(refreshUuid string) error {
|
||||
func (r *repo) invalidateRefreshToken(refreshUuid string) error {
|
||||
return r.db.
|
||||
Model(&Session{}).
|
||||
Where("refresh_uuid = ?", refreshUuid).
|
||||
Update("deleted_at", time.Now().UTC()).Error
|
||||
}
|
||||
|
||||
func (r *repo) getCurrentSession(sessionUuid string) (Session, error) {
|
||||
var s Session
|
||||
err := r.db.Where("refresh_uuid = ?", sessionUuid).Where("deleted_at IS NULL").Find(&s).Error
|
||||
return s, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue