Files
EasyStartup/src/main/java/site/easystartup/web/service/AuthService.java
T
2022-09-01 10:46:56 +02:00

47 lines
1.7 KiB
Java

package site.easystartup.web.service;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import site.easystartup.web.domain.exception.UserExistException;
import site.easystartup.web.domain.model.Role;
import site.easystartup.web.domain.model.User;
import site.easystartup.web.domain.request.SignupRequest;
import site.easystartup.web.domain.request.UpdatePassportRequest;
import site.easystartup.web.repo.UserRepo;
import java.security.Principal;
import java.util.HashSet;
import java.util.Set;
@Service
@RequiredArgsConstructor
public class AuthService {
private final UserRepo userRepo;
private final UserService userService;
private final PasswordEncoder passwordEncoder;
public User createUser(SignupRequest signupRequest) {
if (userRepo.findUserByUsername(signupRequest.getUsername()).isPresent()) {
throw new UserExistException("An account with this username already exists.");
}
User user = new User();
user.setEmail(signupRequest.getEmail());
user.setUsername(signupRequest.getUsername());
user.setPassword(passwordEncoder.encode(signupRequest.getPassword()));
Set<Role> roles = new HashSet<>();
signupRequest.getRoles().forEach(role -> roles.add(Role.valueOf(role)));
user.setRoles(roles);
return userRepo.save(user);
}
public User updatePassword(UpdatePassportRequest passportRequest, Principal principal) {
User user = userService.getUserByPrincipal(principal);
user.setPassword(passwordEncoder.encode(passportRequest.getPassword()));
return userRepo.save(user);
}
}