Skip to content

Commit

Permalink
#21 Fix: 회원 가입시, handle 중복 에러 발생 막기
Browse files Browse the repository at this point in the history
  • Loading branch information
5jisoo committed Jul 3, 2024
1 parent 0f8da54 commit 6652089
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 15 deletions.
7 changes: 5 additions & 2 deletions src/main/java/com/apps/pochak/login/service/OAuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import com.apps.pochak.global.s3.S3Service;
import com.apps.pochak.like.domain.repository.LikeRepository;
import com.apps.pochak.login.dto.request.MemberInfoRequest;
import com.apps.pochak.login.dto.response.OAuthMemberResponse;
import com.apps.pochak.login.dto.response.AccessTokenResponse;
import com.apps.pochak.login.util.JwtHeaderUtil;
import com.apps.pochak.login.dto.response.OAuthMemberResponse;
import com.apps.pochak.login.provider.JwtProvider;
import com.apps.pochak.login.util.JwtHeaderUtil;
import com.apps.pochak.member.domain.Member;
import com.apps.pochak.member.domain.SocialType;
import com.apps.pochak.member.domain.repository.MemberRepository;
Expand Down Expand Up @@ -42,9 +42,12 @@ public class OAuthService {

public OAuthMemberResponse signup(MemberInfoRequest memberInfoRequest) {
SocialType socialType = SocialType.of(memberInfoRequest.getSocialType());

Optional<Member> findMember = memberRepository.findMemberBySocialIdAndSocialType(memberInfoRequest.getSocialId(), socialType);
if (findMember.isPresent()) throw new GeneralException(EXIST_USER);

Optional<Member> memberByHandle = memberRepository.findMemberByHandle(memberInfoRequest.getHandle());
if (memberByHandle.isPresent()) throw new GeneralException(DUPLICATE_HANDLE);

String profileImageUrl = awsS3Service.upload(memberInfoRequest.getProfileImage(), MEMBER);
String refreshToken = jwtProvider.createRefreshToken();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ default void checkDuplicateHandle(final String handle) {

Optional<Member> findMemberBySocialId(final String socialId);

Optional<Member> findMemberBySocialIdAndSocialType(final String socialId, final SocialType socialType);
Optional<Member> findMemberBySocialIdAndSocialType(
final String socialId,
final SocialType socialType
);


@Query("select m from Member m " +
Expand Down
25 changes: 13 additions & 12 deletions src/main/java/com/apps/pochak/member/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
import com.apps.pochak.global.api_payload.exception.GeneralException;
import com.apps.pochak.global.s3.S3Service;
import com.apps.pochak.login.provider.JwtProvider;
import com.apps.pochak.member.dto.request.ProfileUpdateRequest;
import com.apps.pochak.member.dto.response.ProfileUpdateResponse;
import com.apps.pochak.member.domain.Member;
import com.apps.pochak.member.domain.repository.MemberRepository;
import com.apps.pochak.member.dto.request.ProfileUpdateRequest;
import com.apps.pochak.member.dto.response.MemberElements;
import com.apps.pochak.member.dto.response.ProfileResponse;
import com.apps.pochak.member.dto.response.ProfileUpdateResponse;
import com.apps.pochak.post.domain.Post;
import static com.apps.pochak.global.api_payload.code.status.ErrorStatus.*;
import static com.apps.pochak.global.s3.DirName.MEMBER;
import com.apps.pochak.post.domain.repository.PostRepository;
import com.apps.pochak.post.dto.PostElements;
import lombok.RequiredArgsConstructor;
Expand All @@ -21,6 +19,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static com.apps.pochak.global.api_payload.code.status.ErrorStatus.UNAUTHORIZED_MEMBER_REQUEST;
import static com.apps.pochak.global.s3.DirName.MEMBER;

@Service
@RequiredArgsConstructor
@Transactional
Expand All @@ -32,8 +33,9 @@ public class MemberService {
private final S3Service awsS3Service;

@Transactional(readOnly = true)
public ProfileResponse getProfileDetail(final String handle,
final Pageable pageable
public ProfileResponse getProfileDetail(
final String handle,
final Pageable pageable
) {
final Member loginMember = jwtProvider.getLoginMember();
final Member member = memberRepository.findByHandle(handle, loginMember);
Expand All @@ -52,8 +54,10 @@ public ProfileResponse getProfileDetail(final String handle,
.build();
}

public ProfileUpdateResponse updateProfileDetail(final String handle,
final ProfileUpdateRequest profileUpdateRequest){
public ProfileUpdateResponse updateProfileDetail(
final String handle,
final ProfileUpdateRequest profileUpdateRequest
) {
final Member loginMember = jwtProvider.getLoginMember();
final Member updateMember = memberRepository.findByHandleWithoutLogin(handle);
if (!loginMember.equals(updateMember)) {
Expand All @@ -64,6 +68,7 @@ public ProfileUpdateResponse updateProfileDetail(final String handle,
awsS3Service.deleteFileFromS3(updateMember.getProfileImage());
profileImageUrl = awsS3Service.upload(profileUpdateRequest.getProfileImage(), MEMBER);
}

updateMember.updateMember(profileUpdateRequest, profileImageUrl);

return ProfileUpdateResponse.builder()
Expand Down Expand Up @@ -106,10 +111,6 @@ public MemberElements search(
return MemberElements.from(memberPage);
}

private Member findMemberByHandle(final String handle, final Member loginMember) {
return memberRepository.findByHandle(handle, loginMember);
}

@Transactional(readOnly = true)
public void checkDuplicate(String handle) {
memberRepository.checkDuplicateHandle(handle);
Expand Down

0 comments on commit 6652089

Please sign in to comment.