initial commit
This commit is contained in:
73
internal/repository/auth_repository.go
Normal file
73
internal/repository/auth_repository.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.kirlllll.ru/volontery/backend/internal/database"
|
||||
)
|
||||
|
||||
// AuthRepository предоставляет методы для работы с аутентификацией
|
||||
type AuthRepository struct {
|
||||
queries *database.Queries
|
||||
}
|
||||
|
||||
// NewAuthRepository создает новый AuthRepository
|
||||
func NewAuthRepository(queries *database.Queries) *AuthRepository {
|
||||
return &AuthRepository{queries: queries}
|
||||
}
|
||||
|
||||
// CreateRefreshToken создает новый refresh токен
|
||||
func (r *AuthRepository) CreateRefreshToken(ctx context.Context, params database.CreateRefreshTokenParams) (*database.RefreshToken, error) {
|
||||
result, err := r.queries.CreateRefreshToken(ctx, params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetRefreshToken получает refresh токен
|
||||
func (r *AuthRepository) GetRefreshToken(ctx context.Context, token string) (*database.RefreshToken, error) {
|
||||
result, err := r.queries.GetRefreshToken(ctx, token)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// RevokeRefreshToken отзывает refresh токен
|
||||
func (r *AuthRepository) RevokeRefreshToken(ctx context.Context, id int64) error {
|
||||
return r.queries.RevokeRefreshToken(ctx, id)
|
||||
}
|
||||
|
||||
// RevokeAllUserTokens отзывает все токены пользователя
|
||||
func (r *AuthRepository) RevokeAllUserTokens(ctx context.Context, userID int64) error {
|
||||
return r.queries.RevokeAllUserTokens(ctx, userID)
|
||||
}
|
||||
|
||||
// CreateUserSession создает новую сессию
|
||||
func (r *AuthRepository) CreateUserSession(ctx context.Context, params database.CreateUserSessionParams) (*database.UserSession, error) {
|
||||
result, err := r.queries.CreateUserSession(ctx, params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetUserSession получает сессию по токену
|
||||
func (r *AuthRepository) GetUserSession(ctx context.Context, sessionToken string) (*database.UserSession, error) {
|
||||
result, err := r.queries.GetUserSession(ctx, sessionToken)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// UpdateSessionActivity обновляет время активности сессии
|
||||
func (r *AuthRepository) UpdateSessionActivity(ctx context.Context, id int64) error {
|
||||
return r.queries.UpdateSessionActivity(ctx, id)
|
||||
}
|
||||
|
||||
// InvalidateUserSession удаляет сессию
|
||||
func (r *AuthRepository) InvalidateUserSession(ctx context.Context, id int64) error {
|
||||
return r.queries.InvalidateUserSession(ctx, id)
|
||||
}
|
||||
Reference in New Issue
Block a user