To gitea and beyond, let's go(-yco)

This commit is contained in:
2025-11-10 19:12:09 +01:00
parent 8f6133392d
commit 71a031342b
245 changed files with 83994 additions and 0 deletions

View 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
}