- package Database
-
- import (
- "time"
-
- "github.com/gofrs/uuid"
-
- "gorm.io/gorm/clause"
- )
-
- func (s Session) IsExpired() bool {
- return s.Expiry.Before(time.Now())
- }
-
- type Session struct {
- Base
- UserID uuid.UUID `gorm:"type:uuid;column:user_id;not null;"`
- User User
- Expiry time.Time
- }
-
- // GetSessionByID Gets session
- func GetSessionByID(id string) (Session, error) {
- var (
- session Session
- err error
- )
-
- err = DB.Preload(clause.Associations).
- First(&session, "id = ?", id).
- Error
-
- return session, err
- }
-
- // CreateSession creates session
- func (session *Session) CreateSession() error {
- var (
- err error
- )
-
- err = DB.Create(session).Error
-
- return err
- }
-
- // DeleteSession deletes session
- func (session *Session) DeleteSession() error {
- return DB.Delete(session).Error
- }
-
- // DeleteSessionByID deletes session
- func DeleteSessionByID(id string) error {
- return DB.Delete(
- &Session{},
- "id = ?",
- id,
- ).Error
- }
|