mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-05 15:44:21 +00:00
Use ScanStruct in sessions
This commit is contained in:
@@ -26,15 +26,18 @@ func (db *database) CreateSession(session *models.Session) error {
|
|||||||
// GetSessionByRefreshToken retrieves a session by its refresh token
|
// GetSessionByRefreshToken retrieves a session by its refresh token
|
||||||
func (db *database) GetSessionByRefreshToken(refreshToken string) (*models.Session, error) {
|
func (db *database) GetSessionByRefreshToken(refreshToken string) (*models.Session, error) {
|
||||||
session := &models.Session{}
|
session := &models.Session{}
|
||||||
query := db.NewQuery().
|
query := db.NewQuery()
|
||||||
Select("id", "user_id", "refresh_token", "expires_at", "created_at").
|
query, err := query.SelectStruct(session, "sessions")
|
||||||
From("sessions").
|
if err != nil {
|
||||||
Where("refresh_token = ").
|
return nil, fmt.Errorf("failed to create query: %w", err)
|
||||||
|
}
|
||||||
|
query = query.Where("refresh_token = ").
|
||||||
Placeholder(refreshToken).
|
Placeholder(refreshToken).
|
||||||
And("expires_at >").
|
And("expires_at >").
|
||||||
Placeholder(time.Now())
|
Placeholder(time.Now())
|
||||||
err := db.QueryRow(query.String(), query.Args()...).Scan(&session.ID, &session.UserID, &session.RefreshToken, &session.ExpiresAt, &session.CreatedAt)
|
|
||||||
|
|
||||||
|
row := db.QueryRow(query.String(), query.Args()...)
|
||||||
|
err = db.ScanStruct(row, session)
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
return nil, fmt.Errorf("session not found or expired")
|
return nil, fmt.Errorf("session not found or expired")
|
||||||
}
|
}
|
||||||
@@ -48,15 +51,18 @@ func (db *database) GetSessionByRefreshToken(refreshToken string) (*models.Sessi
|
|||||||
// GetSessionByID retrieves a session by its ID
|
// GetSessionByID retrieves a session by its ID
|
||||||
func (db *database) GetSessionByID(sessionID string) (*models.Session, error) {
|
func (db *database) GetSessionByID(sessionID string) (*models.Session, error) {
|
||||||
session := &models.Session{}
|
session := &models.Session{}
|
||||||
query := db.NewQuery().
|
query := db.NewQuery()
|
||||||
Select("id", "user_id", "refresh_token", "expires_at", "created_at").
|
query, err := query.SelectStruct(session, "sessions")
|
||||||
From("sessions").
|
if err != nil {
|
||||||
Where("id = ").
|
return nil, fmt.Errorf("failed to create query: %w", err)
|
||||||
|
}
|
||||||
|
query = query.Where("id = ").
|
||||||
Placeholder(sessionID).
|
Placeholder(sessionID).
|
||||||
And("expires_at >").
|
And("expires_at >").
|
||||||
Placeholder(time.Now())
|
Placeholder(time.Now())
|
||||||
err := db.QueryRow(query.String(), query.Args()...).Scan(&session.ID, &session.UserID, &session.RefreshToken, &session.ExpiresAt, &session.CreatedAt)
|
|
||||||
|
|
||||||
|
row := db.QueryRow(query.String(), query.Args()...)
|
||||||
|
err = db.ScanStruct(row, session)
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
return nil, fmt.Errorf("session not found")
|
return nil, fmt.Errorf("session not found")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user