• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Pagination 에 parameter를 after, count 에 덧붙여 다른것을 추가 할수 있을까요?

23.05.27 10:30 작성 조회수 302

0

안녕하세요.

pagination 을 응용하면서 추가적인 조건이 생겨 parameter를 추가하고 싶습니다.

예를 들어 restaurant 화면에서 별점이 4점 이상인것만 가져오고 싶을때 하기 함수에다 추가해야 될것 같은데 잘 않되고 있습니다.

감사합니다.

@GET('/')
@Headers({'accessToken': 'true'})
Future<CursorPagination<RestaurantModel>> paginate({
  @Queries() PaginationParams? paginationParams = const PaginationParams(),
});

답변 2

·

답변을 작성해보세요.

0

hyokil jung님의 프로필

hyokil jung

2023.05.28

저도 같은 작업하고 있습니다 :)

선생님, PaginationParam을 상속을 받으면 IBasePaginationRepository도 일반화를 시켜야하나요?
혹시 가능하면 조금 자세히 설명부탁 드려도 될까요?

@JsonSerializable()
class TestPaginationParams extends PaginationParams {
  final String some;
  final String more;
  final String value;

  TestPaginationParams({
    required this.some,
    required this.more,
    required this.value,
  });

  Map<String, dynamic> toJson() => _$TestPaginationParamsToJson(this);

  factory TestPaginationParams.fromJson(Map<String, dynamic> json) => _$TestPaginationParamsFromJson(json);
}

@RestApi()
abstract class RestaurantRatingRepository implements IPaginationRepository<RatingModel, TestPaginationParams> {
  factory RestaurantRatingRepository(Dio dio, {String baseUrl}) = _RestaurantRatingRepository;

  @GET("/")
  @Headers({
    'accessToken': 'true',
  })
  // Future<CursorPagination<RatingModel>> paginate({
  //   @Queries() PaginationParams? paginationParams,
  // });
  Future<CursorPagination<RatingModel>> paginate({
    @Queries() TestPaginationParams? paginationParams,
  });

  @POST("/")
  @Headers({
    'accessToken': 'true',
  })
  Future<RatingModel> postRating({
    @Body() required CreateRestaurantRatingBodyDto body,
  });
}

abstract class IPaginationRepository<T, U extends PaginationParams> {
  Future<CursorPagination<T>> paginate({
    U? paginationParams,
  });
}

이런 느낌은 어떠신가요?

0

안녕하세요!

해당 부분은 프론트에서 뿐만 아니라 서버에서도 코드가 변경돼야합니다!

Query Parameter를 인지해서 특정 기능을 실행하게 만들어야해서 서버에 코드를 추가해야하는 사항입니다.

저희 카카오 채널로 오셔서 원격 요청 주시면 제가 변경 도와드리도록 하겠습니다.

https://links.codefactory.ai

감사합니다!

ldsik03님의 프로필

ldsik03

질문자

2023.05.27

서버도 선생님이 제공해준 nest.js 프로그램을 응용해서 Mysql에 연결해 놓았습니다.

프론트엔드에서만 PaginationDto에 추가 파라미터만 태우면 될것 같은데 아이디어나 방향만 알려주시면 최대한 노력해 보겠습니다.

하기 소스코드는 전체 데이터 가져오는것은 잘되고 있습니다. 조건을 주고 싶어서 질문을 남깁니다.

감사합니다.

@UseGuards(AccessTokenGuard) @Get('/requestPage')

paginateRequests( @Query() paginationDto: PaginationDto ): Promise<Pagination<RequestPage>> {

return this.requestService.paginateRequests( paginationDto);

}

아하~! PaginationParam을 상속받아서 원하시는 파라미터들을 추가하는 방법은 어떠신가요?