Skip to content

Commit c07bfc3

Browse files
author
muriloalvesdev
committed
impl update and delete user
1 parent e5fabce commit c07bfc3

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

src/main/java/br/com/developers/login/service/UserService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ public interface UserService {
99
User registerUser(RegisterDTO registerData);
1010

1111
AccessToken authenticateUser(LoginDTO loginDto);
12+
13+
void updateUser(RegisterDTO registerData);
14+
15+
void delete(LoginDTO loginDTO);
1216
}

src/main/java/br/com/developers/login/service/impl/UserServiceImpl.java

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
import br.com.developers.domain.model.User;
1515
import br.com.developers.domain.repository.RoleRepository;
1616
import br.com.developers.domain.repository.UserRepository;
17+
import br.com.developers.exception.ExistingEmailException;
18+
import br.com.developers.exception.RoleNotFoundException;
19+
import br.com.developers.exception.UserNotFoundException;
1720
import br.com.developers.login.dto.LoginDTO;
1821
import br.com.developers.login.dto.RegisterDTO;
19-
import br.com.developers.login.exception.ExistingEmailException;
20-
import br.com.developers.login.exception.RoleNotFoundException;
2122
import br.com.developers.login.http.request.AccessToken;
2223
import br.com.developers.login.service.UserService;
2324
import lombok.AccessLevel;
@@ -28,6 +29,7 @@
2829
class UserServiceImpl implements UserService {
2930

3031
private static final String ROLE_NOT_FOUND = "Fail! -> Cause: %s Role not found in database.";
32+
private static final String USER_NOT_FOUND = "Fail! -> Cause: User not found with email [%s]";
3133

3234
private UserRepository userRepository;
3335
private RoleRepository roleRepository;
@@ -36,28 +38,48 @@ class UserServiceImpl implements UserService {
3638
private AuthenticationManager authenticationManager;
3739

3840
public User registerUser(RegisterDTO registerData) {
39-
if (this.userRepository.existsByEmail(registerData.getEmail())) {
41+
if (this.userRepository.existsByEmail(registerData.getEmail().toLowerCase())) {
4042
throw new ExistingEmailException();
4143
}
4244

4345
User user = User.newBuilder().firstName(registerData.getName())
44-
.lastName(registerData.getLastName()).email(registerData.getEmail())
46+
.lastName(registerData.getLastName()).email(registerData.getEmail().toLowerCase())
4547
.password(this.encoder.encode(registerData.getPassword())).build();
48+
Set<Role> roles = getAllRoles(registerData);
49+
50+
user.setRoles(roles);
51+
return this.userRepository.saveAndFlush(user);
52+
53+
}
54+
55+
56+
private Set<Role> getAllRoles(RegisterDTO registerData) {
4657
Set<String> strRoles = registerData.getRole();
4758
Set<Role> roles = new HashSet<>();
48-
4959
strRoles.forEach(role -> {
5060
RoleName roleName = RoleName.find(role);
5161
Role permission = this.roleRepository.findByName(roleName)
5262
.orElseThrow(() -> new RoleNotFoundException(String.format(ROLE_NOT_FOUND, role)));
5363
roles.add(permission);
5464
});
65+
return roles;
66+
}
5567

56-
user.setRoles(roles);
57-
return this.userRepository.saveAndFlush(user);
5868

69+
public void updateUser(RegisterDTO registerData) {
70+
User user = this.userRepository.findByEmail(registerData.getEmail().toLowerCase()).orElseThrow(
71+
() -> new UserNotFoundException(String.format(USER_NOT_FOUND, registerData.getEmail())));
72+
user.setFirstName(registerData.getName());
73+
user.setLastName(registerData.getLastName());
74+
user.setPassword(registerData.getPassword());
75+
user.setRoles(getAllRoles(registerData));
76+
}
77+
78+
public void delete(LoginDTO loginDTO) {
79+
User user = this.userRepository.findByEmail(loginDTO.getEmail().toLowerCase()).orElseThrow(
80+
() -> new UserNotFoundException(String.format(USER_NOT_FOUND, loginDTO.getEmail())));
81+
this.userRepository.delete(user);
5982
}
60-
6183

6284
public AccessToken authenticateUser(LoginDTO loginDto) {
6385
Authentication authentication = this.authenticationManager.authenticate(

0 commit comments

Comments
 (0)