codeword/internal/repository/user_repository.go
2025-01-04 17:01:27 +03:00

38 lines
809 B
Go

package repository
import (
"context"
"gitea.pena/PenaSide/codeword/internal/models"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
type Deps struct {
Mdb *mongo.Collection
Rdb *redis.Client
}
type UserRepository struct {
mdb *mongo.Collection
}
func NewUserRepository(deps Deps) *UserRepository {
return &UserRepository{mdb: deps.Mdb}
}
// ищем пользователя по мейлу в коллекции users
func (r *UserRepository) FindByEmail(ctx context.Context, email string) (*models.User, error) {
var user models.User
err := r.mdb.FindOne(ctx, bson.M{"login": email}).Decode(&user)
if err != nil {
if err == mongo.ErrNoDocuments {
return nil, nil
}
return nil, ErrPromoUserNotFound
}
return &user, nil
}