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

Moon님의 프로필 이미지

작성한 질문수

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

Override Options 사용해보기

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

23.12.17 23:48 작성

·

227

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. 18:40

네~

답변 감사합니다^^

0

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

2023. 12. 19. 00:30

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

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

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

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

2023. 12. 19. 11:46

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

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

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

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

0

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

2023. 12. 18. 16:00

안녕하세요!

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

예제를 보여주시겠어요?

감사합니다.

Moon님의 프로필 이미지

작성한 질문수

질문하기