generated from VLADIMIR/template
add generate and hash password
This commit is contained in:
@@ -2,16 +2,24 @@ package users_service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"evening_detective_server/internal/modules/password_generator"
|
||||
"evening_detective_server/internal/repos/users_repo"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
type UsersService struct {
|
||||
usersRepo *users_repo.UsersRepo
|
||||
usersRepo *users_repo.UsersRepo
|
||||
passwordGenerator password_generator.IPasswordGenerator
|
||||
}
|
||||
|
||||
func NewUsersService(usersRepo *users_repo.UsersRepo) *UsersService {
|
||||
func NewUsersService(
|
||||
usersRepo *users_repo.UsersRepo,
|
||||
passwordGenerator password_generator.IPasswordGenerator,
|
||||
) *UsersService {
|
||||
return &UsersService{
|
||||
usersRepo: usersRepo,
|
||||
usersRepo: usersRepo,
|
||||
passwordGenerator: passwordGenerator,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,11 +28,19 @@ func (s *UsersService) AddUser(
|
||||
username string,
|
||||
email string,
|
||||
) error {
|
||||
err := s.usersRepo.AddUser(
|
||||
password, err := s.passwordGenerator.Generate()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = s.usersRepo.AddUser(
|
||||
ctx,
|
||||
username,
|
||||
email,
|
||||
"hello", // TODO: generate password and send email
|
||||
string(hashedPassword),
|
||||
"user",
|
||||
)
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user