To gitea and beyond, let's go(-yco)
This commit is contained in:
55
internal/repositories/refresh_token_repository.go
Normal file
55
internal/repositories/refresh_token_repository.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"goyco/internal/database"
|
||||
)
|
||||
|
||||
type RefreshTokenRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
var _ RefreshTokenRepositoryInterface = (*RefreshTokenRepository)(nil)
|
||||
|
||||
func NewRefreshTokenRepository(db *gorm.DB) *RefreshTokenRepository {
|
||||
return &RefreshTokenRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) Create(token *database.RefreshToken) error {
|
||||
return r.db.Create(token).Error
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) GetByTokenHash(tokenHash string) (*database.RefreshToken, error) {
|
||||
var token database.RefreshToken
|
||||
err := r.db.Where("token_hash = ?", tokenHash).First(&token).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &token, nil
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) DeleteByUserID(userID uint) error {
|
||||
return r.db.Where("user_id = ?", userID).Delete(&database.RefreshToken{}).Error
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) DeleteExpired() error {
|
||||
return r.db.Where("expires_at < ?", time.Now()).Delete(&database.RefreshToken{}).Error
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) DeleteByID(id uint) error {
|
||||
return r.db.Delete(&database.RefreshToken{}, id).Error
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) GetByUserID(userID uint) ([]database.RefreshToken, error) {
|
||||
var tokens []database.RefreshToken
|
||||
err := r.db.Where("user_id = ?", userID).Find(&tokens).Error
|
||||
return tokens, err
|
||||
}
|
||||
|
||||
func (r *RefreshTokenRepository) CountByUserID(userID uint) (int64, error) {
|
||||
var count int64
|
||||
err := r.db.Model(&database.RefreshToken{}).Where("user_id = ?", userID).Count(&count).Error
|
||||
return count, err
|
||||
}
|
||||
Reference in New Issue
Block a user