Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,23 @@
import com.somemore.global.auth.oauth.converter.OAuthResponseConverter;
import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;
import com.somemore.global.auth.oauth.domain.CustomOAuth2User;
import com.somemore.global.auth.oauth.registrar.OAuthInfoRegistrar;
import com.somemore.global.auth.oauth.service.OAuthInfoQueryService;
import com.somemore.user.domain.User;
import com.somemore.user.domain.UserRole;
import com.somemore.user.usecase.RegisterUserUseCase;
import com.somemore.global.auth.sign.up.SignUpUseCase;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.UUID;

@Slf4j
@Service
@RequiredArgsConstructor
@Transactional
public class OAuthUserProcessorImpl implements OAuthUserProcessor {

private final OAuthResponseConverter oauthResponseConverter;
private final OAuthInfoChecker oauthInfoChecker;
private final OAuthInfoRegistrar oauthInfoRegistrar;
private final RegisterUserUseCase registerUserUseCase;
private final OAuthInfoQueryService oAuthInfoQueryService;
private final SignUpUseCase signUpUseCase;

@Override
public UUID fetchUserIdByOAuthUser(CustomOAuth2User oauthUser) {
Expand All @@ -36,29 +30,12 @@ public UUID fetchUserIdByOAuthUser(CustomOAuth2User oauthUser) {

private UUID findUserIdByOAuthInfo(CommonOAuthInfo oauthInfo) {
if (isNewUser(oauthInfo)) {
User user = registerOAuthUser(oauthInfo);
return user.getId();
signUpUseCase.signUpOAuthUser(oauthInfo);
}
return oAuthInfoQueryService.getUserIdByCommonOAuthInfo(oauthInfo);
}

private User registerOAuthUser(CommonOAuthInfo oauthInfo) {
User user = registerUser(oauthInfo);
registerOAuthInfo(user, oauthInfo);
// TODO 봉사자 등록 이벤트 발행

return user;
}

private boolean isNewUser(CommonOAuthInfo oauthInfo) {
return !oauthInfoChecker.doesUserExist(oauthInfo.provider(), oauthInfo.oauthId());
}

private User registerUser(CommonOAuthInfo oauthInfo) {
return registerUserUseCase.registerOAuthUser(oauthInfo, UserRole.getOAuthUserDefaultRole());
}

private void registerOAuthInfo(User user, CommonOAuthInfo oauthInfo) {
oauthInfoRegistrar.register(user, oauthInfo);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class SignUpController {
public ApiResponse<String> signUp(
@RequestBody SignUpRequestDto signUpRequestDto
) {
signUpUseCase.signUp(signUpRequestDto);
signUpUseCase.signUpLocalUser(signUpRequestDto);

return ApiResponse.ok("회원가입 되었습니다");
}
Expand Down
15 changes: 13 additions & 2 deletions src/main/java/com/somemore/global/auth/sign/up/SignUpService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.somemore.global.auth.sign.up;

import com.somemore.center.usecase.NEWRegisterCenterUseCase;
import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;
import com.somemore.global.auth.oauth.registrar.OAuthInfoRegistrar;
import com.somemore.user.domain.User;
import com.somemore.user.domain.UserRole;
import com.somemore.user.dto.UserAuthInfo;
Expand All @@ -18,17 +20,26 @@
public class SignUpService implements SignUpUseCase {

private final RegisterUserService registerUserUseCase;
private final OAuthInfoRegistrar oauthInfoRegistrar;
private final NEWRegisterVolunteerUseCase NEWRegisterVolunteerUseCase;
private final NEWRegisterCenterUseCase NEWRegisterCenterUseCase;

@Override
public void signUp(SignUpRequestDto signUpRequestDto) {
public void signUpLocalUser(SignUpRequestDto signUpRequestDto) {
User user = registerUserUseCase.registerLocalUser(
UserAuthInfo.of(signUpRequestDto.accountId(), signUpRequestDto.accountPassword()),
UserRole.from(signUpRequestDto.userRole()));

// TODO 회원가입 이벤트 발행으로 변경 (봉사자 혹은 기관 등록)
// 임시 로직
registerVolunteerOrCenter(user);
}

@Override
public void signUpOAuthUser(CommonOAuthInfo oAuthInfo) {
User user = registerUserUseCase.registerOAuthUser(
oAuthInfo, UserRole.getOAuthUserDefaultRole());

oauthInfoRegistrar.register(user, oAuthInfo);
registerVolunteerOrCenter(user);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package com.somemore.global.auth.sign.up;

import com.somemore.global.auth.oauth.domain.CommonOAuthInfo;

public interface SignUpUseCase {

void signUp(SignUpRequestDto signUpRequestDto);
void signUpLocalUser(SignUpRequestDto signUpRequestDto);

void signUpOAuthUser(CommonOAuthInfo oAuthInfo);
}
Loading