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