From dbdfa815334c43986de645bbebf5c4c5b48c5baf Mon Sep 17 00:00:00 2001 From: ckkim817 Date: Wed, 13 Nov 2024 18:01:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[DEL/#166]=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=8B=9C=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=ED=95=84=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/dto/MemberJoinResponse.java | 14 ++------------ .../domain/member/service/MemberService.java | 10 ++-------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/sopt/seonyakServer/domain/member/dto/MemberJoinResponse.java b/src/main/java/org/sopt/seonyakServer/domain/member/dto/MemberJoinResponse.java index c9d3ae4..2eb9dd6 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/member/dto/MemberJoinResponse.java +++ b/src/main/java/org/sopt/seonyakServer/domain/member/dto/MemberJoinResponse.java @@ -1,19 +1,9 @@ package org.sopt.seonyakServer.domain.member.dto; -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) public record MemberJoinResponse( - Long seniorId, String role ) { - public static MemberJoinResponse of( - final Long seniorId, - final String role - ) { - return new MemberJoinResponse( - seniorId, - role - ); + public static MemberJoinResponse of(final String role) { + return new MemberJoinResponse(role); } } diff --git a/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java b/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java index 2fe4d63..77c560d 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java +++ b/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java @@ -191,19 +191,13 @@ public MemberJoinResponse patchMemberJoin(MemberJoinRequest memberJoinRequest) { memberJoinRequest.departmentList() ); - Long seniorId = null; - - if ("SENIOR".equals(memberJoinRequest.role())) { + if ("SENIOR_PENDING".equals(memberJoinRequest.role())) { member.addSenior(seniorService.createSenior(memberJoinRequest, member)); - seniorId = member.getSenior().getId(); } else if (!"JUNIOR".equals(memberJoinRequest.role())) { throw new CustomException(ErrorType.INVALID_USER_TYPE_ERROR); } - return MemberJoinResponse.of( - seniorId, - memberJoinRequest.role() - ); + return MemberJoinResponse.of(memberJoinRequest.role()); } @Transactional From 081d7eea49db02da17850f406c11febc6afe5208 Mon Sep 17 00:00:00 2001 From: ckkim817 Date: Wed, 13 Nov 2024 18:02:49 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[REFACTOR/#166]=20=EC=95=A1=EC=84=B8?= =?UTF-8?q?=EC=8A=A4=20=ED=86=A0=ED=81=B0=20=EC=83=9D=EC=84=B1=20=EC=8B=9C?= =?UTF-8?q?=20=EC=9C=A0=EC=A0=80=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EC=97=AC=EB=B6=80=20=ED=8C=90=EB=8B=A8=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/dto/LoginSuccessResponse.java | 9 ++- .../domain/member/service/MemberService.java | 65 +++++++++---------- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/src/main/java/org/sopt/seonyakServer/domain/member/dto/LoginSuccessResponse.java b/src/main/java/org/sopt/seonyakServer/domain/member/dto/LoginSuccessResponse.java index 3016bbf..0f5fa45 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/member/dto/LoginSuccessResponse.java +++ b/src/main/java/org/sopt/seonyakServer/domain/member/dto/LoginSuccessResponse.java @@ -5,15 +5,18 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public record LoginSuccessResponse( String role, - String accessToken + String accessToken, + String nickname ) { public static LoginSuccessResponse of( final String role, - final String accessToken + final String accessToken, + final String nickname ) { return new LoginSuccessResponse( role, - accessToken + accessToken, + nickname ); } } diff --git a/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java b/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java index 77c560d..a0e4046 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java +++ b/src/main/java/org/sopt/seonyakServer/domain/member/service/MemberService.java @@ -93,55 +93,38 @@ private MemberInfoResponse getMemberInfoResponse( // Access Token을 생성할 때, 해당 유저의 회원가입 여부를 판단 private LoginSuccessResponse getTokenDto(final MemberInfoResponse memberInfoResponse) { try { + Member member; + if (isExistingMember(memberInfoResponse.socialType(), memberInfoResponse.socialId())) { - Member member = memberRepository.findBySocialTypeAndSocialIdOrThrow( + member = memberRepository.findBySocialTypeAndSocialIdOrThrow( memberInfoResponse.socialType(), memberInfoResponse.socialId() ); - - String role = null; - - if (member.getSenior() == null) { - if (member.getPhoneNumber() != null) { // 멤버 엔티티에 전화번호가 없으면 온보딩을 완료하지 못한 것으로 간주 - role = "JUNIOR"; - } - } else { - role = (member.getSenior().getCatchphrase() != null) ? "SENIOR" : "SENIOR_PENDING"; - } - - return getTokenByMemberId( - role, - member.getId() - ); } else { - Member member = Member.builder() + member = Member.builder() .socialType(memberInfoResponse.socialType()) .socialId(memberInfoResponse.socialId()) .email(memberInfoResponse.email()) .build(); - return getTokenByMemberId(null, memberRepository.save(member).getId()); + member = memberRepository.save(member); } + + String role = determineRole(member); + String nickname = determineNickname(member); + + return getTokenByMemberId(role, member.getId(), nickname); + } catch (DataIntegrityViolationException e) { // DB 무결성 제약 조건 위반 예외 Member member = memberRepository.findBySocialTypeAndSocialIdOrThrow( memberInfoResponse.socialType(), memberInfoResponse.socialId() ); - String role = null; + String role = determineRole(member); + String nickname = determineNickname(member); - if (member.getSenior() == null) { - if (member.getPhoneNumber() != null) { // 멤버 엔티티에 전화번호가 없으면 온보딩을 완료하지 못한 것으로 간주 - role = "JUNIOR"; - } - } else { - role = (member.getSenior().getCatchphrase() != null) ? "SENIOR" : "SENIOR_PENDING"; - } - - return getTokenByMemberId( - role, - member.getId() - ); + return getTokenByMemberId(role, member.getId(), nickname); } } @@ -154,11 +137,27 @@ private boolean isExistingMember( public LoginSuccessResponse getTokenByMemberId( final String role, - final Long id + final Long id, + final String nickname ) { MemberAuthentication memberAuthentication = new MemberAuthentication(id, null, null); - return LoginSuccessResponse.of(role, jwtTokenProvider.issueAccessToken(memberAuthentication)); + return LoginSuccessResponse.of(role, jwtTokenProvider.issueAccessToken(memberAuthentication), nickname); + } + + private String determineRole(Member member) { + if (member.getSenior() == null) { + return member.getPhoneNumber() != null ? "JUNIOR" : null; + } else { + return "SENIOR"; + } + } + + private String determineNickname(Member member) { + if (member.getSenior() != null && member.getSenior().getCatchphrase() == null) { + return member.getNickname(); + } + return null; } // 닉네임 유효성 검증