23 lines
467 B
Go
23 lines
467 B
Go
package repository
|
|
|
|
import (
|
|
"database/sql"
|
|
models "vibeStonk/server/models/v1"
|
|
)
|
|
|
|
type SessionRepo interface {
|
|
Create(user *models.User) (*models.Session, error)
|
|
Get(token string) (*models.Session, error)
|
|
Revoke(session *models.Session) error
|
|
DeleteExpired() error
|
|
}
|
|
|
|
func NewSessionRepo(config *Config, db *sql.DB) (SessionRepo, error) {
|
|
switch config.DBEngine {
|
|
case Sqlite:
|
|
return newSqliteSessionRepo(db), nil
|
|
default:
|
|
return nil, ErrBadEngine
|
|
}
|
|
}
|