Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[스테디] 스테디 인기 모집글 조회 API 개발 #197

Merged
merged 9 commits into from
Jan 3, 2024
Merged

Conversation

K-jun98
Copy link
Contributor

@K-jun98 K-jun98 commented Jan 3, 2024

✅ PR 체크리스트

  • 테스트
  • 문서화 작업

💡 어떤 작업을 하셨나요?

Issue Number : close #194

작업 내용
스테디 인기 모집글 조회 API 개발 및 문서화

📝리뷰어에게

인기글의 대한 기준은 선택한 날짜 이후의 모집글에서 좋아요 수,조회수 를 기준으로 산정했습니다.(좋아요 수가 같다면 조회수 순)
요청에 limit param을 추가해 클라이언트에서 모집글 갯수(10이하)를 지정할 수 있게했습니다.

- @GetMapping을 사용하여 /rank 에 인기 스터디 목록 조회 API 구현
- RankParams를 통해 전달된 조건에 따라 목록 반환
- `steadyRepository`의 `findPopularStudyInCondition` 메소드를 사용하여 조건에 맞는 인기 스터디
- 프로모션 날짜, 스터디 유형 조건으로 필터링 및 좋아요와 조회수로 정렬
Copy link

github-actions bot commented Jan 3, 2024

Test Results

 27 files   27 suites   8s ⏱️
132 tests 132 ✅ 0 💤 0 ❌
133 runs  133 ✅ 0 💤 0 ❌

Results for commit 8c74715.

@K-jun98 K-jun98 requested review from weonest and na-yk and removed request for weonest January 3, 2024 07:28
@K-jun98 K-jun98 self-assigned this Jan 3, 2024
@K-jun98 K-jun98 added the ✏️ Feature 기능 개발 label Jan 3, 2024
@K-jun98 K-jun98 added this to the [6차 스프린트] milestone Jan 3, 2024
Copy link
Contributor

@weonest weonest left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! 클라이언트가 인기 스테디의 개수를 조절할 수 있도록 RankParams 객체를 이용한 구성이 좋았던 것 같습니다!

Comment on lines +9 to +15
public record RankParams(
@DateTimeFormat(pattern = "yyyy-MM-dd")
LocalDate date,
@Max(value = 10, message = "인기글은 최대 10개까지 조회가 가능합니다.")
int limit,
String type
) {
Copy link
Contributor

Choose a reason for hiding this comment

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

limit에 Max 값을 지정해줌으로써 예상치 못한 서버 에러를 방지하는 모습이 좋은 것 같습니다!

public List<Steady> findPopularStudyInCondition(RankCondition condition) {
return jpaQueryFactory.selectFrom(steady)
.where(steady.promotion.promotedAt
.after(condition.date().atStartOfDay()),
Copy link
Contributor

Choose a reason for hiding this comment

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

atStartOfDay로 자료형을 맞춰주시는 부분이 좋은 것 같네요!

@@ -80,6 +83,19 @@ public static Steady createSteady(User leader, List<Stack> stacks) {
.build();
}

public static List<Steady> createSteadiesWithLikeCount(User leader, List<Stack> stacks, int likeCount) {
return IntStream.rangeClosed(0, likeCount)
Copy link
Contributor

Choose a reason for hiding this comment

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

rangeClosed를 사용하여 마지막 값을 포함하신 이유가 있을까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

마지막값을 포함한다는걸 좀 더 명확하게 하고싶어서 사용했습니다!

@K-jun98 K-jun98 merged commit 575141f into dev Jan 3, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[스테디] 스테디 인기 모집글 조회 API 개발
2 participants