From 6c9e6142d02a210528eda62e105ab8956378dbf4 Mon Sep 17 00:00:00 2001
From: JaeSeo Yang <96044622+psychology50@users.noreply.github.com>
Date: Tue, 20 Aug 2024 20:46:14 +0900
Subject: [PATCH] =?UTF-8?q?fix:=20user=5Fsync=5Fdto=20=EB=82=B4=EB=B6=80?=
=?UTF-8?q?=20sync=5Foauth=20dto=20=EC=A0=9C=EA=B1=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/apis/auth/dto/UserSyncDto.java | 47 +++----------------
.../auth/service/UserOauthSignService.java | 8 ++--
2 files changed, 10 insertions(+), 45 deletions(-)
diff --git a/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/dto/UserSyncDto.java b/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/dto/UserSyncDto.java
index a6d0a345b..2a626d1ac 100644
--- a/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/dto/UserSyncDto.java
+++ b/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/dto/UserSyncDto.java
@@ -1,10 +1,5 @@
package kr.co.pennyway.api.apis.auth.dto;
-import kr.co.pennyway.domain.domains.oauth.domain.Oauth;
-import kr.co.pennyway.domain.domains.oauth.type.Provider;
-
-import java.time.LocalDateTime;
-
/**
* 전화번호 검증 후, 시나리오 분기 정보를 위한 DTO
*/
@@ -13,59 +8,31 @@ public record UserSyncDto(
boolean isSignUpAllowed,
boolean isExistAccount,
Long userId,
- String username,
- /* 계정과 연동하기 위한 oauth 정보. 없다면 null */
- OauthSync oauthSync
+ String username
) {
/**
* @param isSignUpAllowed boolean : 회원가입 시나리오 가능 여부 (true: 회원가입 혹은 계정 연동 가능, false: 불가능)
* @param isExistAccount boolean : 이미 존재하는 계정 여부
* @param userId Long : 사용자 ID. 없다면 null
* @param username String : 사용자 이름. 없다면 null
- * @param oauthSync {@link OauthSync} : 연동할 Oauth 정보. 없다면 null
*/
- public static UserSyncDto of(boolean isSignUpAllowed, boolean isExistAccount, Long userId, String username, OauthSync oauthSync) {
- return new UserSyncDto(isSignUpAllowed, isExistAccount, userId, username, oauthSync);
+ public static UserSyncDto of(boolean isSignUpAllowed, boolean isExistAccount, Long userId, String username) {
+ return new UserSyncDto(isSignUpAllowed, isExistAccount, userId, username);
}
/**
* 이미 회원이 존재하는 경우 사용하는 편의용 메서드.
- * 내부에서 {@link UserSyncDto#of(boolean, boolean, Long, String, OauthSync)}를 호출한다.
+ * 내부에서 {@link UserSyncDto#of(boolean, boolean, Long, String)}를 호출한다.
*/
public static UserSyncDto abort(Long userId, String username) {
- return UserSyncDto.of(false, true, userId, username, null);
+ return UserSyncDto.of(false, true, userId, username);
}
/**
* 회원 가입 이력이 없는 경우 사용하는 편의용 메서드.
- * 내부에서 {@link UserSyncDto#of(boolean, boolean, Long, String, OauthSync)}를 호출한다.
+ * 내부에서 {@link UserSyncDto#of(boolean, boolean, Long, String)}를 호출한다.
*/
public static UserSyncDto signUpAllowed() {
- return UserSyncDto.of(true, false, null, null, null);
- }
-
- /**
- * 기존의 soft delete된 Oauth 정보가 있는지 확인한다.
- */
- public boolean isExistOauthAccount() {
- return oauthSync != null;
- }
-
- public record OauthSync(
- Long id,
- String oauthId,
- Provider provider,
- LocalDateTime deletedAt
- ) {
- /**
- * Oauth 정보를 OauthSync로 변환한다.
- * Oauth 정보가 없는 경우 null을 반환한다.
- */
- public static OauthSync from(Oauth oauth) {
- if (oauth == null) {
- return null;
- }
- return new OauthSync(oauth.getId(), oauth.getOauthId(), oauth.getProvider(), oauth.getDeletedAt());
- }
+ return UserSyncDto.of(true, false, null, null);
}
}
diff --git a/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/service/UserOauthSignService.java b/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/service/UserOauthSignService.java
index 68ce2a4ff..db804abd5 100644
--- a/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/service/UserOauthSignService.java
+++ b/pennyway-app-external-api/src/main/java/kr/co/pennyway/api/apis/auth/service/UserOauthSignService.java
@@ -48,15 +48,13 @@ public UserSyncDto isSignUpAllowed(Provider provider, String phone) {
return UserSyncDto.signUpAllowed();
}
- Optional oauth = oauthService.readOauthByUserIdAndProvider(user.get().getId(), provider);
-
- if (oauth.isPresent() && !oauth.get().isDeleted()) {
+ if (oauthService.isExistOauthByUserIdAndProvider(user.get().getId(), provider)) {
log.info("이미 동일한 Provider로 가입된 사용자입니다. phone: {}, provider: {}", phone, provider);
return UserSyncDto.abort(user.get().getId(), user.get().getUsername());
}
log.info("소셜 회원가입 사용자입니다. user: {}", user.get());
- return UserSyncDto.of(true, true, user.get().getId(), user.get().getUsername(), UserSyncDto.OauthSync.from(oauth.orElse(null)));
+ return UserSyncDto.of(true, true, user.get().getId(), user.get().getUsername());
}
/**
@@ -78,7 +76,7 @@ public UserSyncDto isLinkAllowed(Long userId, String oauthId, Provider provider)
User user = userService.readUser(userId).orElseThrow(() -> new UserErrorException(UserErrorCode.NOT_FOUND));
- return UserSyncDto.of(true, true, user.getId(), user.getUsername(), UserSyncDto.OauthSync.from(null));
+ return UserSyncDto.of(true, true, user.getId(), user.getUsername());
}
/**