|
|
package sqlite
import ( "context"
"git.aiterp.net/lucifer/lucifer/models" )
// SessionRepository is a sqlite database.
var SessionRepository = &sessionRepository{}
type sessionRepository struct{}
func (r *sessionRepository) FindByID(ctx context.Context, id string) (models.Session, error) { row := db.QueryRowxContext(ctx, "SELECT * FROM session WHERE id=?", id) if err := row.Err(); err != nil { return models.Session{}, err }
session := models.Session{} if err := row.StructScan(&session); err != nil { return models.Session{}, err }
return session, nil }
func (r *sessionRepository) Insert(ctx context.Context, session models.Session) error { _, err := db.NamedExecContext(ctx, "INSERT INTO session (id, user_id, expire_date) VALUES(:id, :user_id, :expire_date)", session) if err != nil { return err }
return nil }
func (r *sessionRepository) Update(ctx context.Context, session models.Session) error { _, err := db.NamedExecContext(ctx, "UPDATE session SET user_id=:user_id AND expire_date=:expire_date", session) if err != nil { return err }
return nil }
func (r *sessionRepository) Remove(ctx context.Context, session models.Session) error { _, err := db.NamedExecContext(ctx, "DELETE FROM session WHERE id=:id", session) if err != nil { return err }
return nil }
func (r *sessionRepository) Clear(ctx context.Context, user models.User) error { _, err := db.NamedExecContext(ctx, "DELETE FROM session WHERE user_id=:id", user) if err != nil { return err }
return nil }
|