[BE-33] ListCommunityPostsUseCase (신규, 모임 게시글 목록 인가, FR-2)
작업 내용 (설계 의도)
변경 사항
근거 TDD: 20260707-post-community-연동-tdd.md Detail Design “서비스 클래스”.
ListCommunityPostsUseCase(신규, application/post/usecase)는 특정 모임의 게시글 목록을 인가 후 조회한다(전역 피드 아님, PRIVATE 멤버도 자기 모임 글을 봄):
communityDomainService.getCommunity(communityId, requesterId)(FR-2 — 공개→통과/비공개 비멤버→403)postDomainService.search(criteria)— communityId 필터 +globalFeedOnly=false(global_listed 무시, 모임 전체). 종목 필터 선택. Post+CommunityDomainService 주입(R1 배선점, application 레이어).
롤백
신규 UseCase는 라우트 미등록으로 비활성.
의존
- BE-25 (PostDomainService.search)
다이어그램
처리 흐름
sequenceDiagram participant U as ListCommunityPostsUseCase participant CDS as CommunityDomainService participant PDS as PostDomainService U->>CDS: getCommunity(communityId, requesterId) CDS-->>U: 공개 통과 / 비공개 비멤버 403 U->>PDS: search(communityId 필터, globalFeedOnly=false)
테스트 케이스
- PUBLIC 모임 게시글 목록은 비멤버도 조회된다
- PRIVATE 모임 게시글 목록은 ACTIVE 멤버가 조회할 수 있다(private 글 포함)
- PRIVATE 모임 게시글 목록을 비멤버가 조회 시 403
- 게시글 0건 모임은 빈 페이지를 반환한다(에러 아님)
- 종목 필터를 함께 지정하면 해당 모임+종목 게시글만 조회된다(AND)