Skip to content

Commit 0a224d7

Browse files
authored
[FEATURE] OAuth 로그인 중, 신규 유저의 봉사자 등록 로직 추가 (#332)
* feat(auth): OAuth 회원가입 로직 추가 - OAuth 사용자를 위한 회원가입 메소드(signUpOAuthUser) 추가 - 기존 로컬 사용자 회원가입 메소드 이름을 signUpLocalUser로 변경 - OAuth 등록자(OAuthInfoRegistrar) 및 관련 로직 연동 * refactor(auth): OAuth 유저 등록 로직 리팩토링 - `registerOAuthUser` 메서드 제거 및 `SignUpUseCase`로 대체 - `RegisterUserUseCase`와 `OAuthInfoRegistrar` 종속성 제거 - OAuth 유저 등록과 관련된 책임을 `SignUpUseCase`로 위임
1 parent 3cdb3b9 commit 0a224d7

File tree

4 files changed

+22
-30
lines changed

4 files changed

+22
-30
lines changed

src/main/java/com/somemore/global/auth/oauth/processor/OAuthUserProcessorImpl.java

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,23 @@
44
import com.somemore.global.auth.oauth.converter.OAuthResponseConverter;
55
import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;
66
import com.somemore.global.auth.oauth.domain.CustomOAuth2User;
7-
import com.somemore.global.auth.oauth.registrar.OAuthInfoRegistrar;
87
import com.somemore.global.auth.oauth.service.OAuthInfoQueryService;
9-
import com.somemore.user.domain.User;
10-
import com.somemore.user.domain.UserRole;
11-
import com.somemore.user.usecase.RegisterUserUseCase;
8+
import com.somemore.global.auth.sign.up.SignUpUseCase;
129
import lombok.RequiredArgsConstructor;
1310
import lombok.extern.slf4j.Slf4j;
1411
import org.springframework.stereotype.Service;
15-
import org.springframework.transaction.annotation.Transactional;
1612

1713
import java.util.UUID;
1814

1915
@Slf4j
2016
@Service
2117
@RequiredArgsConstructor
22-
@Transactional
2318
public class OAuthUserProcessorImpl implements OAuthUserProcessor {
2419

2520
private final OAuthResponseConverter oauthResponseConverter;
2621
private final OAuthInfoChecker oauthInfoChecker;
27-
private final OAuthInfoRegistrar oauthInfoRegistrar;
28-
private final RegisterUserUseCase registerUserUseCase;
2922
private final OAuthInfoQueryService oAuthInfoQueryService;
23+
private final SignUpUseCase signUpUseCase;
3024

3125
@Override
3226
public UUID fetchUserIdByOAuthUser(CustomOAuth2User oauthUser) {
@@ -36,29 +30,12 @@ public UUID fetchUserIdByOAuthUser(CustomOAuth2User oauthUser) {
3630

3731
private UUID findUserIdByOAuthInfo(CommonOAuthInfo oauthInfo) {
3832
if (isNewUser(oauthInfo)) {
39-
User user = registerOAuthUser(oauthInfo);
40-
return user.getId();
33+
signUpUseCase.signUpOAuthUser(oauthInfo);
4134
}
4235
return oAuthInfoQueryService.getUserIdByCommonOAuthInfo(oauthInfo);
4336
}
4437

45-
private User registerOAuthUser(CommonOAuthInfo oauthInfo) {
46-
User user = registerUser(oauthInfo);
47-
registerOAuthInfo(user, oauthInfo);
48-
// TODO 봉사자 등록 이벤트 발행
49-
50-
return user;
51-
}
52-
5338
private boolean isNewUser(CommonOAuthInfo oauthInfo) {
5439
return !oauthInfoChecker.doesUserExist(oauthInfo.provider(), oauthInfo.oauthId());
5540
}
56-
57-
private User registerUser(CommonOAuthInfo oauthInfo) {
58-
return registerUserUseCase.registerOAuthUser(oauthInfo, UserRole.getOAuthUserDefaultRole());
59-
}
60-
61-
private void registerOAuthInfo(User user, CommonOAuthInfo oauthInfo) {
62-
oauthInfoRegistrar.register(user, oauthInfo);
63-
}
6441
}

src/main/java/com/somemore/global/auth/sign/up/SignUpController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class SignUpController {
2020
public ApiResponse<String> signUp(
2121
@RequestBody SignUpRequestDto signUpRequestDto
2222
) {
23-
signUpUseCase.signUp(signUpRequestDto);
23+
signUpUseCase.signUpLocalUser(signUpRequestDto);
2424

2525
return ApiResponse.ok("회원가입 되었습니다");
2626
}

src/main/java/com/somemore/global/auth/sign/up/SignUpService.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.somemore.global.auth.sign.up;
22

33
import com.somemore.center.usecase.NEWRegisterCenterUseCase;
4+
import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;
5+
import com.somemore.global.auth.oauth.registrar.OAuthInfoRegistrar;
46
import com.somemore.user.domain.User;
57
import com.somemore.user.domain.UserRole;
68
import com.somemore.user.dto.UserAuthInfo;
@@ -18,17 +20,26 @@
1820
public class SignUpService implements SignUpUseCase {
1921

2022
private final RegisterUserService registerUserUseCase;
23+
private final OAuthInfoRegistrar oauthInfoRegistrar;
2124
private final NEWRegisterVolunteerUseCase NEWRegisterVolunteerUseCase;
2225
private final NEWRegisterCenterUseCase NEWRegisterCenterUseCase;
2326

2427
@Override
25-
public void signUp(SignUpRequestDto signUpRequestDto) {
28+
public void signUpLocalUser(SignUpRequestDto signUpRequestDto) {
2629
User user = registerUserUseCase.registerLocalUser(
2730
UserAuthInfo.of(signUpRequestDto.accountId(), signUpRequestDto.accountPassword()),
2831
UserRole.from(signUpRequestDto.userRole()));
2932

3033
// TODO 회원가입 이벤트 발행으로 변경 (봉사자 혹은 기관 등록)
31-
// 임시 로직
34+
registerVolunteerOrCenter(user);
35+
}
36+
37+
@Override
38+
public void signUpOAuthUser(CommonOAuthInfo oAuthInfo) {
39+
User user = registerUserUseCase.registerOAuthUser(
40+
oAuthInfo, UserRole.getOAuthUserDefaultRole());
41+
42+
oauthInfoRegistrar.register(user, oAuthInfo);
3243
registerVolunteerOrCenter(user);
3344
}
3445

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.somemore.global.auth.sign.up;
22

3+
import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;
4+
35
public interface SignUpUseCase {
46

5-
void signUp(SignUpRequestDto signUpRequestDto);
7+
void signUpLocalUser(SignUpRequestDto signUpRequestDto);
8+
9+
void signUpOAuthUser(CommonOAuthInfo oAuthInfo);
610
}

0 commit comments

Comments
 (0)