feat: 회원가입 Service 메소드 구현

This commit is contained in:
dongHyo
2022-05-17 00:01:06 +09:00
parent b60f641b1d
commit 08219996bf
2 changed files with 43 additions and 0 deletions

View File

@@ -1,9 +1,47 @@
package com.ticketing.server.user.service; package com.ticketing.server.user.service;
import com.ticketing.server.user.domain.User;
import com.ticketing.server.user.domain.UserGrade;
import com.ticketing.server.user.domain.repository.UserRepository;
import com.ticketing.server.user.exception.DuplicateEmailException;
import com.ticketing.server.user.service.dto.SignUp;
import com.ticketing.server.user.service.interfaces.UserService; import com.ticketing.server.user.service.interfaces.UserService;
import java.util.Optional;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@Service @Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
@Validated
public class UserServiceImpl implements UserService { public class UserServiceImpl implements UserService {
private final PasswordEncoder passwordEncoder;
private final UserRepository userRepository;
@Transactional
public User register(@Valid SignUp signUpDto) {
validateEmail(signUpDto.getEmail());
User user = new User(signUpDto.getName(),
signUpDto.getEmail(),
signUpDto.encodePassword(passwordEncoder),
UserGrade.GUEST,
signUpDto.getPhone());
return userRepository.save(user);
}
private void validateEmail(String email) {
Optional<User> user = userRepository.findByEmail(email);
if (user.isPresent()) {
throw new DuplicateEmailException(email);
}
}
} }

View File

@@ -1,5 +1,10 @@
package com.ticketing.server.user.service.interfaces; package com.ticketing.server.user.service.interfaces;
import com.ticketing.server.user.domain.User;
import com.ticketing.server.user.service.dto.SignUp;
public interface UserService { public interface UserService {
User register(SignUp signUpDto);
} }