🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

common.service 의 cursorPaginate 일반화 할때 nextUrl 생성시 질문입니다.

23.12.17 23:48 작성 조회수 172

0

common.service 의 cursorPaginate 일반화 관련 질문입니다.

nextUrl 생성할 때 아래와 같이 searchParams 를 생성하는데 이 부분은 일반화 할 수없는건가요?

if (nextUrl) {
  for (const key of Object.keys(dto)) {
    if (dto[key]) {
      if (
        key !== 'where__id__more_than' &&
        key !== 'where__id__less_than'
      ) {
        nextUrl.searchParams.append(key, dto[key]);
      }
    }
  }

  let key = null;

  if (dto.order__createdAt === 'ASC') {
    key = 'where__id__more_than';
  } else {
    key = 'where__id__less_than';
  }

  nextUrl.searchParams.append(key, lastItem.id.toString());
}

 

답변 3

·

답변을 작성해보세요.

0

Moon님의 프로필

Moon

질문자

2023.12.19

네~

답변 감사합니다^^

0

Moon님의 프로필

Moon

질문자

2023.12.19

제가 질문을 애매하게 했네요. 죄송합니다.

composeFindOption 처럼 nextUrl 생성 부분도 만들 수 있는지 궁금했었습니다.

예를 들어 현재 코드에서는 where__likeCount__more_than 라는 쿼리파라미터가 만들어 질때마다 netxUrl 에서 하나 하나씩 추가 시켜 줘야해서 이부분도 composeFindOption 처럼 자동 파싱이 가능한지 입니다.

composeFindOption과 똑같은 방식으로 말씀하시는게 맞을까요?

맞다면 완전 똑같이 사용하면 되는데 (스트링 값과 원하시는 값을 key value로 페어링해서 매핑하는 방식) 아무래도 이 질문이 아닐 것 같아서 제가 아직도 잘 이해를 못하는 것 같습니다. (제대로 이해 했다면 방식은 완전 똑같습니다)

예를들면 where는 기본으로 붙여주고 칼럼 이름은 언더스코어 뒤에 붙여주고 (이 부분은 위에서 말씀드린대로 key value로 정의해둔 다음 key 값을 기반으로 찾으면 되겠죠) more_than 같은 부분도 마찬가지로 말씀하신 composeFindOptions에서 하는 방식대로 구현하시면 됩니다.

혹시 제가 잘못 이해하고 있다면 다시 질문 부탁드립니다!

0

안녕하세요!

해당 부분을 일반화 한다는게 어떤 말씀이신지 잘 모르겠습니다.

예제를 보여주시겠어요?

감사합니다.

채널톡 아이콘