Files
EasyStartup/src/main/java/site/easystartup/web/service/AuthService.java
T
2022-09-15 22:49:10 +03:00

42 lines
1.5 KiB
Java

package site.easystartup.web.service;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
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.repo.UserRepo;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@Service
@RequiredArgsConstructor
public class AuthService {
private final UserRepo userRepo;
private final PasswordEncoder passwordEncoder;
public User createUser(SignupRequest signupRequest) {
boolean exists = false;
try {
if (userRepo.findUserByUsername(signupRequest.getUsername()).isPresent()) {
exists = true;
}
} catch (UsernameNotFoundException e) {}
if(exists) 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()));
user.setRoles(Collections.singleton(Role.USER));
user.setActive(true);
return userRepo.save(user);
}
}