@@ -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