Skip to content

Commit 3493e4c

Browse files
authored
[NO_JIRA] 멤버 수 확인 API 추가 (#200)
* feat : 멤버 수 API 추가 * feat : 멤버가 존재하지 않을 경우 Exception 추가 * feat : 멤버 수 API 화이트 리스트 추가 * refactor : 복수 표현으로 변경
1 parent fc7edea commit 3493e4c

File tree

9 files changed

+38
-1
lines changed

9 files changed

+38
-1
lines changed

application/src/main/java/org/depromeet/spot/application/common/jwt/JwtAuthenticationFilter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
6060
"/api/v2/GOOGLE",
6161
Set.of("GET"),
6262
"/api/v2/KAKAO",
63+
Set.of("GET"),
64+
"/api/v1/admin/memberCount",
6365
Set.of("GET"));
6466

6567
@Override

application/src/main/java/org/depromeet/spot/application/member/controller/MemberController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,11 @@ public MyHomeResponse findMemberHomeFeed(@Parameter(hidden = true) Long memberId
117117
public void softDelete(@Parameter(hidden = true) Long memberId) {
118118
memberUsecase.softDelete(memberId);
119119
}
120+
121+
@GetMapping("/admin/membersCount")
122+
@ResponseStatus(HttpStatus.OK)
123+
@Operation(summary = "(admin) 가입 멤버 수 조회 API")
124+
public int membersCount() {
125+
return memberUsecase.membersCount();
126+
}
120127
}

common/src/main/java/org/depromeet/spot/common/exception/member/MemberErrorCode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public enum MemberErrorCode implements ErrorCode {
1212
INVALID_LEVEL(HttpStatus.INTERNAL_SERVER_ERROR, "M003", "잘못된 레벨입니다."),
1313
INACTIVE_MEMBER(HttpStatus.GONE, "M004", "탈퇴한 유저입니다."),
1414
MEMBER_CONFLICT(HttpStatus.BAD_REQUEST, "M005", "이미 가입된 유저입니다."),
15-
;
15+
MEMBERS_NOT_EXIST(HttpStatus.NOT_FOUND, "M006", "가입한 유저가 없습니다.");
1616

1717
private final HttpStatus status;
1818
private final String code;

common/src/main/java/org/depromeet/spot/common/exception/member/MemberException.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ public MemberNicknameConflictException() {
2424
}
2525
}
2626

27+
public static class MembersNotExistException extends MemberException {
28+
public MembersNotExistException() {
29+
super(MemberErrorCode.MEMBERS_NOT_EXIST);
30+
}
31+
32+
public MembersNotExistException(Object o) {
33+
super(MemberErrorCode.MEMBERS_NOT_EXIST.appended(o));
34+
}
35+
}
36+
2737
public static class InvalidLevelException extends MemberException {
2838
public InvalidLevelException() {
2939
super(MemberErrorCode.INVALID_LEVEL);

infrastructure/src/main/java/org/depromeet/spot/infrastructure/jpa/member/repository/MemberJpaRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,7 @@ void updateDeletedAt(
4343
"update MemberEntity m set m.deletedAt = null, m.updatedAt = :updatedAt where m.id = :memberId")
4444
void updateDeletedAtAndUpdatedAt(
4545
@Param("memberId") Long memberId, @Param("updatedAt") LocalDateTime updatedAt);
46+
47+
@Query("select count(*) from MemberEntity m")
48+
Optional<Integer> findMemberCount();
4649
}

infrastructure/src/main/java/org/depromeet/spot/infrastructure/jpa/member/repository/MemberRepositoryImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Optional;
55

66
import org.depromeet.spot.common.exception.member.MemberException.MemberNotFoundException;
7+
import org.depromeet.spot.common.exception.member.MemberException.MembersNotExistException;
78
import org.depromeet.spot.domain.member.Level;
89
import org.depromeet.spot.domain.member.Member;
910
import org.depromeet.spot.infrastructure.jpa.member.entity.MemberEntity;
@@ -70,4 +71,9 @@ public void updateDeletedAt(Long memberId, LocalDateTime deletedAt) {
7071
public void updateDeletedAtAndUpdatedAt(Long memberId, LocalDateTime updatedAt) {
7172
memberJpaRepository.updateDeletedAtAndUpdatedAt(memberId, updatedAt);
7273
}
74+
75+
@Override
76+
public int membersCount() {
77+
return memberJpaRepository.findMemberCount().orElseThrow(MembersNotExistException::new);
78+
}
7379
}

usecase/src/main/java/org/depromeet/spot/usecase/port/in/member/MemberUsecase.java

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

2424
void softDelete(Long memberId);
2525

26+
int membersCount();
27+
2628
@Getter
2729
@Builder
2830
@AllArgsConstructor

usecase/src/main/java/org/depromeet/spot/usecase/port/out/member/MemberRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ public interface MemberRepository {
2525
void updateDeletedAt(Long memberId, LocalDateTime deletedAt);
2626

2727
void updateDeletedAtAndUpdatedAt(Long memberId, LocalDateTime updatedAt);
28+
29+
int membersCount();
2830
}

usecase/src/main/java/org/depromeet/spot/usecase/service/member/MemberService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,9 @@ public void softDelete(Long memberId) {
117117

118118
memberRepository.updateDeletedAt(memberId, LocalDateTime.now());
119119
}
120+
121+
@Override
122+
public int membersCount() {
123+
return memberRepository.membersCount();
124+
}
120125
}

0 commit comments

Comments
 (0)