package repository import ( "codeword/internal/models" "context" "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 }