From 6652089da01a30fe4ed521c592b2a045838e6557 Mon Sep 17 00:00:00 2001 From: Lucy Oh <56earls@gmail.com> Date: Thu, 4 Jul 2024 03:22:42 +0900 Subject: [PATCH] =?UTF-8?q?#21=20Fix:=20=ED=9A=8C=EC=9B=90=20=EA=B0=80?= =?UTF-8?q?=EC=9E=85=EC=8B=9C,=20handle=20=EC=A4=91=EB=B3=B5=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EB=B0=9C=EC=83=9D=20=EB=A7=89=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pochak/login/service/OAuthService.java | 7 ++++-- .../domain/repository/MemberRepository.java | 5 +++- .../pochak/member/service/MemberService.java | 25 ++++++++++--------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/apps/pochak/login/service/OAuthService.java b/src/main/java/com/apps/pochak/login/service/OAuthService.java index 4dff67ec..58e20b57 100644 --- a/src/main/java/com/apps/pochak/login/service/OAuthService.java +++ b/src/main/java/com/apps/pochak/login/service/OAuthService.java @@ -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; @@ -42,9 +42,12 @@ public class OAuthService { public OAuthMemberResponse signup(MemberInfoRequest memberInfoRequest) { SocialType socialType = SocialType.of(memberInfoRequest.getSocialType()); + Optional findMember = memberRepository.findMemberBySocialIdAndSocialType(memberInfoRequest.getSocialId(), socialType); if (findMember.isPresent()) throw new GeneralException(EXIST_USER); + Optional memberByHandle = memberRepository.findMemberByHandle(memberInfoRequest.getHandle()); + if (memberByHandle.isPresent()) throw new GeneralException(DUPLICATE_HANDLE); String profileImageUrl = awsS3Service.upload(memberInfoRequest.getProfileImage(), MEMBER); String refreshToken = jwtProvider.createRefreshToken(); diff --git a/src/main/java/com/apps/pochak/member/domain/repository/MemberRepository.java b/src/main/java/com/apps/pochak/member/domain/repository/MemberRepository.java index 174631e0..9e7f8c70 100644 --- a/src/main/java/com/apps/pochak/member/domain/repository/MemberRepository.java +++ b/src/main/java/com/apps/pochak/member/domain/repository/MemberRepository.java @@ -65,7 +65,10 @@ default void checkDuplicateHandle(final String handle) { Optional findMemberBySocialId(final String socialId); - Optional findMemberBySocialIdAndSocialType(final String socialId, final SocialType socialType); + Optional findMemberBySocialIdAndSocialType( + final String socialId, + final SocialType socialType + ); @Query("select m from Member m " + diff --git a/src/main/java/com/apps/pochak/member/service/MemberService.java b/src/main/java/com/apps/pochak/member/service/MemberService.java index 391964ab..433c5201 100644 --- a/src/main/java/com/apps/pochak/member/service/MemberService.java +++ b/src/main/java/com/apps/pochak/member/service/MemberService.java @@ -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; @@ -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 @@ -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); @@ -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)) { @@ -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() @@ -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);