인프런 커뮤니티 질문&답변

Moon님의 프로필 이미지
Moon

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Override Options 사용해보기

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

작성

·

239

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
질문자

네~

답변 감사합니다^^

0

Moon님의 프로필 이미지
Moon
질문자

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

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

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

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

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

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

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

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

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

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

예제를 보여주시겠어요?

감사합니다.

Moon님의 프로필 이미지
Moon

작성한 질문수

질문하기