-
Notifications
You must be signed in to change notification settings - Fork 1
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
Conversation
- @GetMapping을 사용하여 /rank 에 인기 스터디 목록 조회 API 구현 - RankParams를 통해 전달된 조건에 따라 목록 반환
- `steadyRepository`의 `findPopularStudyInCondition` 메소드를 사용하여 조건에 맞는 인기 스터디
- 프로모션 날짜, 스터디 유형 조건으로 필터링 및 좋아요와 조회수로 정렬
- getXXX -> findXXX
- Eager -> Lazy
Test Results 27 files 27 suites 8s ⏱️ Results for commit 8c74715. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다! 클라이언트가 인기 스테디의 개수를 조절할 수 있도록 RankParams
객체를 이용한 구성이 좋았던 것 같습니다!
public record RankParams( | ||
@DateTimeFormat(pattern = "yyyy-MM-dd") | ||
LocalDate date, | ||
@Max(value = 10, message = "인기글은 최대 10개까지 조회가 가능합니다.") | ||
int limit, | ||
String type | ||
) { |
There was a problem hiding this comment.
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()), |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rangeClosed
를 사용하여 마지막 값을 포함하신 이유가 있을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
마지막값을 포함한다는걸 좀 더 명확하게 하고싶어서 사용했습니다!
✅ PR 체크리스트
💡 어떤 작업을 하셨나요?
Issue Number : close #194
작업 내용
스테디 인기 모집글 조회 API 개발 및 문서화
📝리뷰어에게
인기글의 대한 기준은 선택한 날짜 이후의 모집글에서 좋아요 수,조회수 를 기준으로 산정했습니다.(좋아요 수가 같다면 조회수 순)
요청에 limit param을 추가해 클라이언트에서 모집글 갯수(10이하)를 지정할 수 있게했습니다.