[R9] Register user in auth service class

This commit is contained in:
Mirna Gama 2024-01-12 12:38:35 -03:00 committed by Mirna Gama
parent 3adadc7489
commit 2685f95f80
2 changed files with 35 additions and 1 deletions

View File

@ -4,9 +4,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO; import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO;
import com.mirna.hospitalmanagementapi.domain.entities.auth.User;
import com.mirna.hospitalmanagementapi.domain.services.UserService;
import com.mirna.hospitalmanagementapi.domain.services.auth.AuthService; import com.mirna.hospitalmanagementapi.domain.services.auth.AuthService;
/** /**
@ -23,10 +26,16 @@ public class AuthServiceImpl implements AuthService {
@Autowired @Autowired
private AuthenticationManager manager; private AuthenticationManager manager;
@Autowired
private UserService userService;
@Autowired
private PasswordEncoder passwordEncoder;
/** /**
* Performs the user login * Performs the user login
* *
* @param userAuthDTO Data transfer object containing user credentials for authentication operations * @param userDTO Data transfer object containing user credentials for authentication operations
* @return A fully authentication object including the credentials * @return A fully authentication object including the credentials
*/ */
@Override @Override
@ -36,5 +45,20 @@ public class AuthServiceImpl implements AuthService {
return manager.authenticate(token); return manager.authenticate(token);
} }
/**
* Performs the user registration
*
* @param userDTO Data transfer object containing user credentials for authentication operations
* @return A user object including the credentials
*/
@Override
public User register(UserDTO userDTO) {
String encodedPassword = passwordEncoder.encode(userDTO.password());
userDTO = new UserDTO(userDTO.login(), encodedPassword);
return this.userService.addUser(userDTO);
}
} }

View File

@ -3,6 +3,7 @@ package com.mirna.hospitalmanagementapi.domain.services.auth;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO; import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO;
import com.mirna.hospitalmanagementapi.domain.entities.auth.User;
/** /**
* Authentication service interface for managing authentication and registration. * Authentication service interface for managing authentication and registration.
@ -20,4 +21,13 @@ public interface AuthService {
* @return A fully authentication object including the credentials * @return A fully authentication object including the credentials
*/ */
public Authentication login(UserDTO userDTO); public Authentication login(UserDTO userDTO);
/**
* Performs the user registration
*
* @param userDTO Data transfer object containing user credentials for authentication operations
* @return A user object including the credentials
*/
public User register(UserDTO userDTO);
} }