Skip to content

Commit bfc07aa

Browse files
authored
Merge pull request #351 from mosu-dev/develop
[배포]: 카카오 중복 판단 로직 추가 및 로그 제거
2 parents 9ee1286 + c4dc8dc commit bfc07aa

30 files changed

Lines changed: 330 additions & 263 deletions

src/main/java/life/mosu/mosuserver/application/auth/SignUpService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ public class SignUpService {
2323
@Transactional
2424
public Token signUp(final SignUpAccountRequest request) {
2525
UserJpaEntity user = doAccountStep(request);
26-
log.info("User signed up successfully: {}", user);
2726
return authTokenManager.generateAuthToken(user);
2827
}
2928

3029
private UserJpaEntity doAccountStep(SignUpAccountRequest request) {
3130
UserJpaEntity user = request.toAuthEntity(passwordEncoder);
32-
log.info("log : {}", user);
3331
return signUpAccountStepProcessor.process(user);
3432
}
3533
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package life.mosu.mosuserver.application.auth.kmc.tx;
22

3-
import life.mosu.mosuserver.domain.auth.signup.Token;
3+
import life.mosu.mosuserver.domain.auth.token.Token;
44

55
public record KmcContext(
66
String certNum,
77
Long expiration,
88
Boolean isSuccess
99
) {
10+
1011
public static KmcContext ofSuccess(String certNum, Long expiration) {
1112
return new KmcContext(certNum, expiration, true);
1213
}
@@ -17,8 +18,8 @@ public static KmcContext ofFailure(String certNum) {
1718

1819
public Token toToken() {
1920
return Token.of(
20-
this.certNum,
21-
this.expiration
21+
this.certNum,
22+
this.expiration
2223
);
2324
}
2425
}

src/main/java/life/mosu/mosuserver/application/auth/kmc/tx/KmcTxEventListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package life.mosu.mosuserver.application.auth.kmc.tx;
22

3-
import life.mosu.mosuserver.domain.auth.signup.Token;
4-
import life.mosu.mosuserver.domain.auth.signup.TokenRepository;
3+
import life.mosu.mosuserver.domain.auth.token.Token;
4+
import life.mosu.mosuserver.domain.auth.token.TokenRepository;
55
import life.mosu.mosuserver.global.tx.TxFailureHandler;
66
import lombok.RequiredArgsConstructor;
77
import lombok.extern.slf4j.Slf4j;

src/main/java/life/mosu/mosuserver/application/auth/processor/SignUpAccountStepProcessor.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,28 @@ public class SignUpAccountStepProcessor implements StepProcessor<UserJpaEntity,
2020
@Transactional
2121
@Override
2222
public UserJpaEntity process(UserJpaEntity user) {
23-
if (userRepository.existsByPhoneNumber(user.getOriginPhoneNumber())) {
24-
throw new CustomRuntimeException(ErrorCode.USER_ALREADY_EXISTS);
25-
} else if (userRepository.existsByLoginId(user.getLoginId())) {
23+
24+
validateForNewSignUp(user);
25+
26+
return userRepository.save(user);
27+
}
28+
29+
private void validateForNewSignUp(UserJpaEntity user) {
30+
31+
userRepository.findByPhoneNumber(user.getOriginPhoneNumber())
32+
.ifPresent(existingUser -> {
33+
if (existingUser.isPendingUser()) {
34+
switch (existingUser.getProvider()) {
35+
case MOSU:
36+
throw new CustomRuntimeException(ErrorCode.USER_ALREADY_EXISTS);
37+
case KAKAO:
38+
throw new CustomRuntimeException(ErrorCode.KAKAO_DUPLICATED);
39+
}
40+
}
41+
});
42+
43+
if (userRepository.existsByLoginId(user.getLoginId())) {
2644
throw new CustomRuntimeException(ErrorCode.USER_ALREADY_EXISTS);
2745
}
28-
log.info("Processing user sign-up: {}", user);
29-
return userRepository.save(user);
3046
}
3147
}

src/main/java/life/mosu/mosuserver/application/auth/provider/OneTimeTokenProvider.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@
88
import io.jsonwebtoken.security.Keys;
99
import java.security.Key;
1010
import java.util.Date;
11-
import life.mosu.mosuserver.domain.auth.signup.Token;
12-
import life.mosu.mosuserver.domain.auth.signup.TokenRepository;
11+
import life.mosu.mosuserver.domain.auth.token.Token;
12+
import life.mosu.mosuserver.domain.auth.token.TokenRepository;
1313
import lombok.extern.slf4j.Slf4j;
1414
import org.springframework.beans.factory.annotation.Value;
1515
import org.springframework.stereotype.Service;
16+
1617
@Slf4j
1718
@Service
1819
public class OneTimeTokenProvider {
19-
private final TokenRepository tokenRepository;
20+
2021
private static final String tokenType = "ONE_TIME";
2122
private static final String TOKEN_TYPE_KEY = "type";
2223
private static final String PHONE_NUMBER_KEY = "phone";
23-
24+
private final TokenRepository tokenRepository;
2425
private final Long expireTime;
2526
private final Key key;
2627

src/main/java/life/mosu/mosuserver/application/notify/NotifyService.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,10 @@ public void notify(LunaNotificationEvent event) {
3737
NotifySender<LunaNotificationVariable> sender = senderResolver.resolve(event.status());
3838

3939
sender.send(phone, event, notifyVariable);
40-
log.info("[NotifyService] 알림톡 전송 성공: userId={}, status={}", event.userId(), event.status());
4140
}
4241

4342
@Recover
4443
public void recover(CustomRuntimeException exception, LunaNotificationEvent event) {
45-
log.warn(
46-
"[NotifyService] 알림톡 전송 실패: userId={}, status={}, reason={}",
47-
event.userId(), event.status(), exception.getMessage()
48-
);
4944
DiscordExceptionNotifyEventRequest request = DiscordExceptionNotifyEventRequest.of(
5045
exception.getCause() != null ? exception.getCause().toString() : "N/A",
5146
exception.getMessage(),

src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,23 @@ public class OAuthUserPersistenceProcessor implements StepProcessor<OAuthUserInf
1717

1818
private final UserJpaRepository userRepository;
1919

20-
/**
21-
* this method is processing OAuthUserInfo to UserJpaEntity that is Get or Create.
22-
*
23-
* @param info
24-
* @return
25-
*/
2620
@Override
2721
@Transactional
2822
public UserJpaEntity process(final OAuthUserInfo info) {
2923
return userRepository.findByPhoneNumber(
3024
PhoneNumberUtil.formatPhoneNumber(info.phoneNumber()))
3125
.map(existingUser -> {
32-
if (existingUser.isMosuUser()) {
33-
throw new OAuthException("DUPLICATE");
26+
switch (existingUser.getProvider()) {
27+
case MOSU:
28+
if (existingUser.isPendingUser()) {
29+
throw new OAuthException("DUPLICATE");
30+
}
31+
break;
32+
case KAKAO:
33+
if (existingUser.isPendingUser()) {
34+
throw new OAuthException("KAKAO_DUPLICATE");
35+
}
36+
break;
3437
}
3538
existingUser.updateOAuthUser(
3639
info.gender(),

src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public OAuth2User loadUser(final OAuth2UserRequest userRequest)
4646
.orElse(false);
4747
}
4848

49-
log.info("동의 여부{}", agreedToMarketing);
50-
5149
final String registrationId = userRequest.getClientRegistration().getRegistrationId();
5250
final String userNameAttributeName = userRequest.getClientRegistration()
5351
.getProviderDetails()

src/main/java/life/mosu/mosuserver/application/user/UserService.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package life.mosu.mosuserver.application.user;
22

3-
import life.mosu.mosuserver.domain.profile.entity.ProfileJpaEntity;
43
import life.mosu.mosuserver.domain.user.entity.UserJpaEntity;
54
import life.mosu.mosuserver.domain.user.repository.UserJpaRepository;
65
import life.mosu.mosuserver.global.exception.CustomRuntimeException;
@@ -31,13 +30,6 @@ public UserJpaEntity getUserOrThrow(Long userId) {
3130
);
3231
}
3332

34-
public void syncUserInfoFromProfile(UserJpaEntity user, ProfileJpaEntity profile) {
35-
if (user.isMosuUser()) {
36-
user.updateUserInfo(profile.getGender(), profile.getUserName(),
37-
profile.getPhoneNumber(), profile.getBirth());
38-
}
39-
}
40-
4133
public Long saveOrGetUser(UserJpaEntity user) {
4234
return userJpaRepository.findByPhoneNumber(
4335
PhoneNumberUtil.formatGuestPhoneNumber(user.getPhoneNumber()))

src/main/java/life/mosu/mosuserver/domain/auth/signup/SignUpTokenKeyValueRepository.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)