Skip to content

Commit a808d3b

Browse files
authored
Merge pull request #561 from TaskFlow-CLAP/CLAP-425
CLAP-425 활성 회원이 없을 시 승인 대기중인 회원을 찾도록 로직 수정
2 parents 8640fd1 + a1057d1 commit a808d3b

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

src/main/java/clap/server/adapter/outbound/persistense/MemberPersistenceAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ public Optional<Member> findActiveMemberByNickname(final String nickname) {
4343
return memberEntity.map(memberPersistenceMapper::toDomain);
4444
}
4545

46+
@Override
47+
public Optional<Member> findApprovalMemberByNickname(String nickname) {
48+
Optional<MemberEntity> memberEntity = memberRepository.findApprovalRequestMemberByNickname(nickname);
49+
return memberEntity.map(memberPersistenceMapper::toDomain);
50+
}
51+
4652
@Override
4753
public List<Member> findReviewers() {
4854
List<MemberEntity> memberEntities = memberRepository.findByIsReviewerTrue();

src/main/java/clap/server/adapter/outbound/persistense/repository/member/MemberRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ public interface MemberRepository extends JpaRepository<MemberEntity, Long>, Me
2121
@Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'ACTIVE'")
2222
Optional<MemberEntity> findActiveMemberByNickname(@Param("nickname") String nickname);
2323

24+
@Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'APPROVAL_REQUEST'")
25+
Optional<MemberEntity> findApprovalRequestMemberByNickname(@Param("nickname") String nickname);
26+
2427
List<MemberEntity> findByIsReviewerTrue();
2528

2629
List<MemberEntity> findAll(); // 전체 회원 조회

src/main/java/clap/server/application/port/outbound/member/LoadMemberPort.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public interface LoadMemberPort {
2323

2424
Optional<Member> findActiveMemberByNickname(String nickname);
2525

26+
Optional<Member> findApprovalMemberByNickname(String nickname);
27+
2628
List<Member> findReviewers();
2729

2830
Page<Member> findAllMembers(Pageable pageable);

src/main/java/clap/server/application/service/auth/AuthService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class AuthService implements LoginUsecase, LogoutUsecase {
3636
@Override
3737
public LoginResponse login(String nickname, String password, String clientIp) {
3838
Member member = getMember(nickname,clientIp);
39-
4039
validatePassword(password, member.getPassword(), nickname, clientIp);
4140

4241
if (member.getStatus().equals(MemberStatus.APPROVAL_REQUEST)) {
@@ -69,11 +68,12 @@ private void deleteAccessToken(Long memberId, String accessToken) {
6968
}
7069

7170
private Member getMember(String inputNickname, String clientIp) {
72-
return loadMemberPort.findActiveMemberByNickname(inputNickname).orElseThrow(() ->
73-
{
74-
loginAttemptService.recordFailedAttempt(inputNickname, clientIp);
75-
return new AuthException(AuthErrorCode.LOGIN_REQUEST_FAILED);
76-
});
71+
return loadMemberPort.findActiveMemberByNickname(inputNickname)
72+
.or(() -> loadMemberPort.findApprovalMemberByNickname(inputNickname))
73+
.orElseThrow(() -> {
74+
loginAttemptService.recordFailedAttempt(inputNickname, clientIp);
75+
return new AuthException(AuthErrorCode.LOGIN_REQUEST_FAILED);
76+
});
7777
}
7878

7979
private void validatePassword(String inputPassword, String encodedPassword, String inputNickname, String clientIp) {

0 commit comments

Comments
 (0)