Skip to content

feat: 콜벤 자신이 참여한 게시글 필터 추가#2194

Merged
DHkimgit merged 2 commits intodevelopfrom
feat/2184-callvan-sprint-qa
Mar 23, 2026
Merged

feat: 콜벤 자신이 참여한 게시글 필터 추가#2194
DHkimgit merged 2 commits intodevelopfrom
feat/2184-callvan-sprint-qa

Conversation

@DHkimgit
Copy link
Copy Markdown
Collaborator

@DHkimgit DHkimgit commented Mar 23, 2026

🔍 개요


🚀 주요 변경 내용

  • 콜벤 게시글 API - 자신이 참여한 게시글 필터(joined) 추가

💬 참고 사항


✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

Summary by CodeRabbit

Release Notes

  • New Features
    • Added a filter option for callvan posts. Authenticated users can now filter the listing to display only posts they've joined, streamlining management of their ride participations while maintaining full access to all available posts.

@DHkimgit DHkimgit self-assigned this Mar 23, 2026
@DHkimgit DHkimgit added 기능 새로운 기능을 개발합니다. Team Campus 캠퍼스 팀에서 작업할 이슈입니다 labels Mar 23, 2026
@DHkimgit DHkimgit requested a review from dh2906 March 23, 2026 13:18
@github-actions github-actions bot added the 버그 정상적으로 동작하지 않는 문제상황입니다. label Mar 23, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 23, 2026

📝 Walkthrough

Walkthrough

The changes add an optional joined query parameter to the CallvanApi's callvan post listing endpoint. When enabled, authenticated users receive only posts they have joined. The parameter threads through the controller, service, and repository layers, with the repository implementing a JPAExpressions subquery to filter for non-deleted participant records.

Changes

Cohort / File(s) Summary
API & Controller Layer
src/main/java/in/koreatech/koin/domain/callvan/controller/CallvanApi.java, src/main/java/in/koreatech/koin/domain/callvan/controller/CallvanController.java
Added optional joined query parameter (default false) to the getCallvanPosts endpoint signature and threaded it through the controller method.
Service Layer
src/main/java/in/koreatech/koin/domain/callvan/service/CallvanPostQueryService.java
Updated getCallvanPosts to accept isJoined parameter and introduced getJoinedMemberId helper method that derives the member ID for filtering when the parameter is true.
Repository Layer
src/main/java/in/koreatech/koin/domain/callvan/repository/CallvanPostQueryRepository.java
Extended findCallvanPosts and countCallvanPosts signatures to accept joinedMemberId parameter; added joinedByMemberId filter condition using JPAExpressions subquery to check for non-deleted participant records.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • ImTotem
  • dh2906
  • duehee
  • krSeonghyeon

Poem

🐰 A filter hops through layers bright,
joined=true shows posts just right,
Subqueries check who came to play,
No soft-deleted friends in the way! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main feature: adding a filter for callvan posts that the user has joined.
Linked Issues check ✅ Passed The PR implements the core requirement from issue #2184 by adding the joined filter parameter to the callvan API, enabling users to filter posts they have participated in.
Out of Scope Changes check ✅ Passed All changes are directly related to the joined filter feature. The modifications span the API contract, controller, service, and repository layers without introducing unrelated changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/2184-callvan-sprint-qa

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 23, 2026

Unit Test Results

691 tests   688 ✔️  1m 26s ⏱️
169 suites      3 💤
169 files        0

Results for commit 50a60ef.

♻️ This comment has been updated with latest results.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
src/main/java/in/koreatech/koin/domain/callvan/repository/CallvanPostQueryRepository.java (1)

146-153: 조회 경로 최적화를 위해 복합 인덱스 추가를 검토해 주세요.

callvan_participant 테이블의 EXISTS 조건이 목록/카운트 조회에서 반복되는데, 현재는 member_idpost_id에 대한 개별 인덱스만 존재합니다(V229 마이그레이션). (member_id, post_id, is_deleted) 복합 인덱스가 없으면 트래픽 증가 시 쿼리 성능에 영향을 줄 수 있으므로, 필요시 마이그레이션을 통해 추가를 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/main/java/in/koreatech/koin/domain/callvan/repository/CallvanPostQueryRepository.java`
around lines 146 - 153, The EXISTS query using callvanParticipant (in
CallvanPostQueryRepository where the JPAExpressions checks
callvanParticipant.post.id.eq(callvanPost.id),
callvanParticipant.member.id.eq(joinedMemberId),
callvanParticipant.isDeleted.isFalse()) should be supported by a composite DB
index to avoid repeated scans; add a migration that creates a composite index on
(member_id, post_id, is_deleted) and also annotate the CallvanParticipant entity
with a matching `@Table`(indexes = `@Index`(...)) or equivalent so Hibernate-aware
schema tools and production DB both have the (member_id, post_id, is_deleted)
index to optimize these EXISTS checks.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In
`@src/main/java/in/koreatech/koin/domain/callvan/repository/CallvanPostQueryRepository.java`:
- Around line 146-153: The EXISTS query using callvanParticipant (in
CallvanPostQueryRepository where the JPAExpressions checks
callvanParticipant.post.id.eq(callvanPost.id),
callvanParticipant.member.id.eq(joinedMemberId),
callvanParticipant.isDeleted.isFalse()) should be supported by a composite DB
index to avoid repeated scans; add a migration that creates a composite index on
(member_id, post_id, is_deleted) and also annotate the CallvanParticipant entity
with a matching `@Table`(indexes = `@Index`(...)) or equivalent so Hibernate-aware
schema tools and production DB both have the (member_id, post_id, is_deleted)
index to optimize these EXISTS checks.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8891794c-5636-4caa-8572-8829b5baa4d1

📥 Commits

Reviewing files that changed from the base of the PR and between 627b78a and 7abce8a.

📒 Files selected for processing (4)
  • src/main/java/in/koreatech/koin/domain/callvan/controller/CallvanApi.java
  • src/main/java/in/koreatech/koin/domain/callvan/controller/CallvanController.java
  • src/main/java/in/koreatech/koin/domain/callvan/repository/CallvanPostQueryRepository.java
  • src/main/java/in/koreatech/koin/domain/callvan/service/CallvanPostQueryService.java

@DHkimgit DHkimgit merged commit 56d449b into develop Mar 23, 2026
6 checks passed
@DHkimgit DHkimgit deleted the feat/2184-callvan-sprint-qa branch March 23, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Team Campus 캠퍼스 팀에서 작업할 이슈입니다 기능 새로운 기능을 개발합니다. 버그 정상적으로 동작하지 않는 문제상황입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[캠퍼스] 콜벤 1차 QA 수정

2 participants