-
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
fix: cursor 데이터 일치 #163
fix: cursor 데이터 일치 #163
Conversation
@GaBaljaintheroom 해당 기능은 fix/structure랑 아예 별개니깐 temp-develop에서 분기를 따도 좋을 거 같아요 |
@Schema(description = "조회한 데이터의 Cursor Value") | ||
Object value | ||
) { | ||
public static CursorApiResponse toCursor(UUID id, Object value) { |
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.
리뷰 포인트: 2
toCursor라고 하면, Cursor 객체 그 자체일 거 같은 느낌이 들어서, toCursorResponse라고 명시하는 건 어떨까요?
|
||
@Parameter(description = "조회하는 데이터 개수", required = true) | ||
@Min(value = 10, message = "조회하는 데이터 개수는 최소 10개 이어야 합니다.") | ||
@Max(value = 30, message = "조회하는 데이터 개수는 최대 30개 이어야 합니다.") |
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.
준수님 default 값 할당이 안 보이는데, 혹시 제가 놓친 포인트가 있을까요?
|
수정완료했습니당 |
@GaBaljaintheroom 혹시 이런 방식은 어때요? package com.example.genre.controller.dto.request;
import com.example.genre.service.dto.request.GenreUnsubscriptionPaginationServiceRequest;
import com.example.vo.SubscriptionStatusApiType;
import io.swagger.v3.oas.annotations.Parameter;
import java.util.UUID;
public record GenreUnsubscriptionPaginationApiRequest(
@Parameter(description = "이전 페이지네이션 마지막 데이터의 ID / 최초 조회라면 null")
UUID cursor,
@Parameter(description = "조회하는 데이터 개수")
String size
) {
public GenreUnsubscriptionPaginationApiRequest(UUID cursor, String size) {
this.cursor = cursor;
this.size = size == null ? "30" : size;
}
public GenreUnsubscriptionPaginationServiceRequest toServiceRequest(UUID userId) {
return GenreUnsubscriptionPaginationServiceRequest.builder()
.subscriptionStatusApiType(SubscriptionStatusApiType.UNSUBSCRIBED)
.cursor(cursor)
.size(Integer.parseInt(size))
.userId(userId)
.build();
}
} 이유는,
|
@GetMapping("/unsubscriptions")
@Operation(summary = "구독하지 않은 아티스트 목록 조회")
public ResponseEntity<PaginationApiResponse<ArtistUnsubscriptionPaginationApiParam>> getUnsubscribedArtists(
@AuthenticationPrincipal AuthenticatedUser user,
@Valid @ParameterObject ArtistUnsubscriptionPaginationApiRequest request,
@RequestParam(defaultValue = "30") @Max(value = 30, message = "조회하는 데이터 개수는 최대 30개 이어야 합니다.") int size
) {
var response =
(user == null)
? artistService.findArtistUnsubscriptionsForNonUser(
request.toNonUserServiceRequest(size)
)
: artistService.findArtistUnsubscriptions(
request.toServiceRequest(user.userId(), size)
);
var data = response.data().stream()
.map(ArtistUnsubscriptionPaginationApiParam::from)
.toList();
return ResponseEntity.ok(
PaginationApiResponse.<ArtistUnsubscriptionPaginationApiParam>builder()
.hasNext(response.hasNext())
.data(data)
.build()
);
}```
찬기님 혹시 이런식으로 빼는 건 어떻게 생각하시나요? Swagger로도 명시적으로용 |
😋 작업한 내용
{”cursor” : {”id” : “”, “value” : ””}}
형식 일치🙏 PR Point
👍 관련 이슈
지라 티켓