-
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
[BSVR]-119 내 시야기록 조회 API 구현 #36
Conversation
public ReviewListResult findMyReviews( | ||
Long userId, int offset, int limit, Integer year, Integer month) { | ||
List<Review> reviews = reviewRepository.findByUserId(userId, offset, limit, year, month); | ||
Long totalCount = reviewRepository.countByUserId(userId, year, month); | ||
List<KeywordCount> topKeywords = Collections.emptyList(); // 사용자 리뷰에 대한 탑 키워드 모음 필요 없음 | ||
|
||
return new ReviewListResult(reviews, topKeywords, totalCount, offset, limit); | ||
} |
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.
- usecase 반환형인
ReviewListResult
에 topkeyword부분은 블록으로 조회할 때는 필요하고, 내 리뷰만 조회(지금 만든 API)할 때는 필요하지 않아. - 이 경우에 레코드를 따로 만들어줄지(형태가 거의 똑같음) 그냥 emptyList를 반환(null로 두면 npe가 생김)해서 response 넘겨줄지 고민인데 일단 후자로 했어.
- 혹시 개선 아이디어 있으면 코멘트 남겨주라
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.
나는 레코드 따로 만들어주는게 좋다고 생각해!
dto는 서로 아무런 연관 없관도 없고, 변동에도 취약하니 재사용 하기 보단 독립적으로 가져가는게 좋을 것 같아.
또 이 메서드만 봤을 때, topKeywords는 매번 emptyList인데 왜 필드가 있는건지 의문이 들기도 하고!
지금은 이대로 진행해도, 나중엔 리팩토링하면 좋을 듯 하다 👀
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.
확인~! 중간발표 이후에 리팩토링할게!
package org.depromeet.spot.application.review.dto.request; | ||
|
||
import jakarta.validation.constraints.Max; | ||
import jakarta.validation.constraints.Min; | ||
import jakarta.validation.constraints.PositiveOrZero; | ||
|
||
import io.swagger.v3.oas.annotations.Parameter; | ||
|
||
public record MyReviewRequest( | ||
@Parameter(description = "유저 ID") Long userId, | ||
@PositiveOrZero @Parameter(description = "시작 위치 (기본값: 0)") Integer offset, | ||
@Min(1) @Max(50) @Parameter(description = "조회할 리뷰 수 (기본값: 10, 최대: 50)") Integer limit, | ||
@Min(1000) @Max(9999) @Parameter(description = "년도 (4자리 숫자)") Integer year, | ||
@Min(1) @Max(12) @Parameter(description = "월 (1-12)") Integer month) {} |
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.
request dto 필드로 useid 넣어놨는데 이건 토큰 검증방식 적용되면 토큰에서 받아오는걸로~
System.out.printf( | ||
"userId: %d, offset: %d, limit: %d, year: %d, month: %d\n", | ||
userId, offset, limit, year, month); |
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.
요거 지워주세용! 디버깅에 필요한 값이면 @slf4j 등을 활용해서 로그로 찍어줘~
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.
LGTM! 고생했오
📌 개요 (필수)
🔨 작업 사항 (필수)
⚡️ 관심 리뷰 (선택)
🌱 연관 내용 (선택)
💻 실행 화면 (필수)