Implement more methods in user service
This commit is contained in:
@@ -20,16 +20,7 @@ public class UserController {
|
|||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
|
||||||
@PostMapping("/signUp")
|
@PostMapping("/signUp")
|
||||||
public Boolean signUp(@ModelAttribute @Validated UserSignUpRequest signUpReq) throws Exception {
|
public User signUp(@ModelAttribute @Validated UserSignUpRequest signUpReq) throws Exception {
|
||||||
if(userService.isEmailExist(signUpReq.getEmail())) {
|
return userService.signUp(signUpReq);
|
||||||
throw new Exception("Your Mail already Exist.");
|
|
||||||
}
|
|
||||||
User newUser = userService.signUp(signUpReq.toUserEntity());
|
|
||||||
System.out.println("newUser = " + newUser.toString());
|
|
||||||
if(newUser.getId() != null) {
|
|
||||||
System.out.println("running");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,30 @@
|
|||||||
package demo.api.user;
|
package demo.api.user;
|
||||||
|
|
||||||
import demo.api.user.domain.User;
|
import demo.api.user.domain.User;
|
||||||
|
import demo.api.user.dtos.UserSignUpRequest;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface UserService {
|
public interface UserService {
|
||||||
/**
|
/**
|
||||||
* 유저의 정보로 회원가입
|
* 유저의 정보로 회원가입
|
||||||
* @param user 가입할 유저의 정보
|
* @param signUpReq 가입할 유저의 정보 Dto
|
||||||
* @return 가입된 유저 정보
|
* @return 가입된 유저 정보
|
||||||
*/
|
*/
|
||||||
User signUp(User user);
|
User signUp(UserSignUpRequest signUpReq) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 모든 유저 리스트를 반환
|
||||||
|
* @return 유저 리스트
|
||||||
|
*/
|
||||||
|
List<User> findAll();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 이메일을 통해 유저 조회
|
* 이메일을 통해 유저 조회
|
||||||
* @param email
|
* @param email
|
||||||
* @return 조회된 유저
|
* @return 조회된 유저
|
||||||
*/
|
*/
|
||||||
User findUserByEmail(String email);
|
Optional<User> findByEmail(String email);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 유저 정보 수정
|
* 유저 정보 수정
|
||||||
@@ -25,10 +34,11 @@ public interface UserService {
|
|||||||
*/
|
*/
|
||||||
User updateUser(User user, String newInfo);
|
User updateUser(User user, String newInfo);
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 이메일 중복 여부를 확인
|
// * 이메일 중복 여부를 확인
|
||||||
* @param email
|
// *
|
||||||
* @return true | false
|
// * @param email
|
||||||
*/
|
// * @return true | false
|
||||||
boolean isEmailExist(String email);
|
// */
|
||||||
|
// boolean isEmailExist(String email);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package demo.api.user;
|
package demo.api.user;
|
||||||
|
|
||||||
import demo.api.user.domain.User;
|
import demo.api.user.domain.User;
|
||||||
|
import demo.api.user.dtos.UserSignUpRequest;
|
||||||
import demo.api.user.repository.UserRepository;
|
import demo.api.user.repository.UserRepository;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -10,18 +13,24 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Transactional
|
@Transactional
|
||||||
public class UserServiceImpl implements UserService {
|
public class UserServiceImpl implements UserService {
|
||||||
// private final BCryptPasswordEncoder passwordEncoder;
|
|
||||||
private final UserRepository userRepository;
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User signUp(User user) {
|
public User signUp(UserSignUpRequest signUpReq) throws Exception {
|
||||||
// user.hashPassword(passwordEncoder);
|
if(this.isEmailExist(signUpReq.getEmail())) {
|
||||||
return userRepository.save(user);
|
throw new Exception("Your Mail already Exist.");
|
||||||
|
}
|
||||||
|
return userRepository.save(signUpReq.toUserEntity());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User findUserByEmail(String email) {
|
public List<User> findAll() {
|
||||||
return null;
|
return userRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<User> findByEmail(String email) {
|
||||||
|
return userRepository.findByEmail(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -29,8 +38,14 @@ public class UserServiceImpl implements UserService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
public boolean isEmailExist(String email) {
|
* 이메일 중복 여부를 확인
|
||||||
return false;
|
*
|
||||||
|
* @param email
|
||||||
|
* @return true | false
|
||||||
|
*/
|
||||||
|
private boolean isEmailExist(String email) {
|
||||||
|
Optional<User> byEmail = userRepository.findByEmail(email);
|
||||||
|
return !byEmail.isEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ public class UserSignUpRequest {
|
|||||||
@NotEmpty(message = "Please enter your Name")
|
@NotEmpty(message = "Please enter your Name")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
public UserSignUpRequest(String email, String password, String name) {
|
||||||
|
this.email = email;
|
||||||
|
this.password = password;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transform to User Entity
|
* Transform to User Entity
|
||||||
* @return User Entity
|
* @return User Entity
|
||||||
|
|||||||
@@ -7,7 +7,10 @@ import demo.api.AppConfig;
|
|||||||
import demo.api.user.UserService;
|
import demo.api.user.UserService;
|
||||||
import demo.api.user.UserServiceImpl;
|
import demo.api.user.UserServiceImpl;
|
||||||
import demo.api.user.domain.User;
|
import demo.api.user.domain.User;
|
||||||
|
import demo.api.user.dtos.UserSignUpRequest;
|
||||||
import demo.api.user.repository.UserRepository;
|
import demo.api.user.repository.UserRepository;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -18,15 +21,15 @@ import org.springframework.boot.test.context.SpringBootTest;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
|
@Transactional
|
||||||
@DisplayName("User Service Test")
|
@DisplayName("User Service Test")
|
||||||
class UserServiceTest {
|
class UserServiceTest {
|
||||||
private static final String EMAIL = "test@email.com";
|
private static final String EMAIL = "test@email.com";
|
||||||
private static final String PASSWORD = "12345";
|
private static final String PASSWORD = "12345";
|
||||||
private static final String NAME = "김정호";
|
private static final String NAME = "김정호";
|
||||||
UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void beforeEach() {
|
public void beforeEach() {
|
||||||
@@ -35,9 +38,9 @@ class UserServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("User Sign Up")
|
@DisplayName("유저 회원가입")
|
||||||
void signUp() {
|
void signUp() throws Exception {
|
||||||
User user = createUser();
|
UserSignUpRequest user = createSignUpRequest();
|
||||||
System.out.println("user = " + user.toString());
|
System.out.println("user = " + user.toString());
|
||||||
User newUser = userService.signUp(user);
|
User newUser = userService.signUp(user);
|
||||||
|
|
||||||
@@ -46,19 +49,41 @@ class UserServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void findUserByEmail() {
|
@DisplayName("모든 유저 리스트를 반환")
|
||||||
|
void findAll() throws Exception {
|
||||||
|
// given
|
||||||
|
List<User> prevUserList = userService.findAll();
|
||||||
|
int prevLen = prevUserList.size();
|
||||||
|
UserSignUpRequest user1 = createSignUpRequest();
|
||||||
|
userService.signUp(user1);
|
||||||
|
|
||||||
|
// when
|
||||||
|
List<User> userList = userService.findAll();
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertEquals(prevLen + 1, userList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void updateUserName() {
|
@DisplayName("이메일로 유저 찾기")
|
||||||
|
void findByEmail() throws Exception {
|
||||||
|
// given
|
||||||
|
UserSignUpRequest user1 = createSignUpRequest();
|
||||||
|
userService.signUp(user1);
|
||||||
|
|
||||||
|
// when
|
||||||
|
Optional<User> byEmail = userService.findByEmail(EMAIL);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(byEmail.get().getEmail()).isEqualTo(user1.getEmail());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void isEmailExist() {
|
void updateUser() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private User createUser() {
|
private UserSignUpRequest createSignUpRequest() {
|
||||||
return User.builder()
|
return UserSignUpRequest.builder()
|
||||||
.email(EMAIL)
|
.email(EMAIL)
|
||||||
.password(PASSWORD)
|
.password(PASSWORD)
|
||||||
.name(NAME)
|
.name(NAME)
|
||||||
|
|||||||
Reference in New Issue
Block a user