add email sender and send email with password

This commit is contained in:
2026-06-29 23:34:09 +07:00
parent 7806061313
commit 4d9b73cb34
4 changed files with 129 additions and 1 deletions
@@ -2,8 +2,10 @@ package users_service
import (
"context"
"evening_detective_server/internal/modules/email_sender"
"evening_detective_server/internal/modules/password_generator"
"evening_detective_server/internal/repos/users_repo"
"fmt"
"golang.org/x/crypto/bcrypt"
)
@@ -11,15 +13,18 @@ import (
type UsersService struct {
usersRepo *users_repo.UsersRepo
passwordGenerator password_generator.IPasswordGenerator
emailSender email_sender.IEmailSender
}
func NewUsersService(
usersRepo *users_repo.UsersRepo,
passwordGenerator password_generator.IPasswordGenerator,
emailSender email_sender.IEmailSender,
) *UsersService {
return &UsersService{
usersRepo: usersRepo,
passwordGenerator: passwordGenerator,
emailSender: emailSender,
}
}
@@ -43,5 +48,15 @@ func (s *UsersService) AddUser(
string(hashedPassword),
"user",
)
if err != nil {
return err
}
err = s.emailSender.Send(ctx, email_sender.Message{
To: email,
Subject: "Приветствую тебя, детектив!",
Body: fmt.Sprintf("Вот твой пароль для входа в систему: %s", password),
})
return err
}