Skip to content

Commit 9efee1c

Browse files
committed
refactor: UserService 가독성 개선
1 parent bf2dda7 commit 9efee1c

1 file changed

Lines changed: 32 additions & 40 deletions

File tree

src/main/java/com/ourmenu/backend/domain/user/application/UserService.java

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,15 @@ public class UserService {
5555
*/
5656
@Transactional
5757
public TokenDto signUp(SignUpRequest request) {
58+
SignInType signInType = SignInType.convert(request.getSignInType());
59+
String email = request.getEmail();
60+
User savedUser;
5861

59-
User savedUser = saveUser(request);
62+
if (signInType.equals(SignInType.KAKAO)) {
63+
savedUser = signUpByKakao(email);
64+
} else {
65+
savedUser = signUpByEmail(email, request.getPassword());
66+
}
6067

6168
List<MealTime> mealTimes = mealTimeService.saveMealTimes(request.getMealTime(), savedUser.getId());
6269

@@ -65,11 +72,11 @@ public TokenDto signUp(SignUpRequest request) {
6572
throw new InvalidMealTimeCountException();
6673
}
6774

68-
TokenDto tokenDto = jwtTokenProvider.createAllToken(request.getEmail(), SignInType.convert(request.getSignInType()));
75+
TokenDto tokenDto = jwtTokenProvider.createAllToken(email, signInType);
6976
RefreshToken refreshToken = new RefreshToken(
7077
tokenDto.getRefreshToken(),
71-
request.getEmail(),
72-
SignInType.convert(request.getSignInType())
78+
email,
79+
signInType
7380
);
7481
refreshTokenRepository.save(refreshToken);
7582
return tokenDto;
@@ -83,30 +90,33 @@ public TokenDto signUp(SignUpRequest request) {
8390
*/
8491
@Transactional
8592
public TokenDto signIn(SignInRequest request) {
93+
String email = request.getEmail();
94+
SignInType signInType = SignInType.convert(request.getSignInType());
95+
8696
Optional<User> optionalUser = userRepository
87-
.findByEmailAndSignInType(request.getEmail(), SignInType.convert(request.getSignInType()));
97+
.findByEmailAndSignInType(email, signInType);
8898

89-
if (optionalUser.isEmpty() || !optionalUser.get().getSignInType().name().equals(request.getSignInType())) {
99+
if (optionalUser.isEmpty() || !optionalUser.get().getSignInType().equals(signInType)) {
90100
throw new NotFoundUserException();
91101
}
92102

93103
User user = optionalUser.get();
94104

95-
if (request.getSignInType().equals("EMAIL") && !passwordEncoder.matches(request.getPassword(), user.getPassword())) {
105+
if (signInType.equals(SignInType.EMAIL) && !passwordEncoder.matches(request.getPassword(), user.getPassword())) {
96106
throw new NotMatchPasswordException();
97107
}
98108

99-
TokenDto tokenDto = jwtTokenProvider.createAllToken(request.getEmail(), SignInType.convert(request.getSignInType()));
109+
TokenDto tokenDto = jwtTokenProvider.createAllToken(email, signInType);
100110
Optional<RefreshToken> refreshToken = refreshTokenRepository
101-
.findRefreshTokenByEmailAndSignInType(request.getEmail(), SignInType.convert(request.getSignInType()));
111+
.findRefreshTokenByEmailAndSignInType(email, signInType);
102112

103113
if (refreshToken.isPresent()) {
104114
refreshTokenRepository.save(refreshToken.get().updateToken(tokenDto.getRefreshToken()));
105115
} else {
106116
RefreshToken newToken = new RefreshToken(
107117
tokenDto.getRefreshToken(),
108-
request.getEmail(),
109-
SignInType.convert(request.getSignInType())
118+
email,
119+
signInType
110120
);
111121
refreshTokenRepository.save(newToken);
112122
}
@@ -227,7 +237,7 @@ public KakaoExistenceResponse validateKakaoUserExists(PostEmailRequest request)
227237

228238
Optional<User> optionalUser = userRepository.findByEmailAndSignInType(email, SignInType.KAKAO);
229239

230-
if (optionalUser.isPresent() && optionalUser.get().getSignInType() == SignInType.KAKAO) {
240+
if (optionalUser.isPresent() && optionalUser.get().getSignInType().equals(SignInType.KAKAO)) {
231241
return KakaoExistenceResponse.from(true);
232242
}
233243

@@ -250,39 +260,20 @@ public void removeUser(Long userId) {
250260
userRepository.delete(user);
251261
}
252262

253-
/**
254-
* 유저 정보를 저장한다.
255-
*
256-
* @param request
257-
* @return
258-
* @throws UnsupportedSignInTypeException 지원하지 않는 SignInType을 요청한 경우
259-
*/
260-
private User saveUser(SignUpRequest request) {
261-
if (request.getSignInType().equals("EMAIL")) {
262-
return signUpByEmail(request);
263-
}
264-
265-
if (request.getSignInType().equals("KAKAO")) {
266-
return signUpByKakao(request);
267-
}
268-
269-
throw new UnsupportedSignInTypeException();
270-
}
271-
272263
/**
273264
* Kakao 유저를 저장한다.
274265
*
275-
* @param request
266+
* @param email
276267
* @return
277268
*/
278-
private User signUpByKakao(SignUpRequest request) {
279-
Optional<User> optionalUser = userRepository.findByEmailAndSignInType(request.getEmail(), SignInType.KAKAO);
269+
private User signUpByKakao(String email) {
270+
Optional<User> optionalUser = userRepository.findByEmailAndSignInType(email, SignInType.KAKAO);
280271
if (optionalUser.isPresent() && optionalUser.get().getSignInType() == SignInType.KAKAO) {
281272
throw new DuplicateEmailException();
282273
}
283274

284275
User user = User.builder()
285-
.email(request.getEmail())
276+
.email(email)
286277
.signInType(SignInType.KAKAO)
287278
.build();
288279

@@ -292,19 +283,20 @@ private User signUpByKakao(SignUpRequest request) {
292283
/**
293284
* Email 유저를 저장한다.
294285
*
295-
* @param request
286+
* @param email
287+
* @param password
296288
* @return
297289
*/
298-
private User signUpByEmail(SignUpRequest request) {
299-
Optional<User> optionalUser = userRepository.findByEmailAndSignInType(request.getEmail(), SignInType.EMAIL);
290+
private User signUpByEmail(String email, String password) {
291+
Optional<User> optionalUser = userRepository.findByEmailAndSignInType(email, SignInType.EMAIL);
300292
if (optionalUser.isPresent() && optionalUser.get().getSignInType() == SignInType.EMAIL) {
301293
throw new DuplicateEmailException();
302294
}
303295

304-
String encodedPassword = passwordEncoder.encode(request.getPassword());
296+
String encodedPassword = passwordEncoder.encode(password);
305297

306298
User user = User.builder()
307-
.email(request.getEmail())
299+
.email(email)
308300
.password(encodedPassword)
309301
.signInType(SignInType.EMAIL)
310302
.build();

0 commit comments

Comments
 (0)