[Co-Work] Day7

ShinJuYong·2022년 5월 17일
0

기업협업

목록 보기
7/8
post-thumbnail

기업협업 Day7

  • 어제보낸 PR에대한 피드백
    • 페이지네이션시 page를 받을때 0이들어올수도 있으니 해당값은 1로 예외처리를 해주세요!
    • GraphQL Args에서 :number로 지정하면 float가 되니 정수형으로 변경해주세요~
      • 정수형을 받는다면 type: () => Int로 지정
    • 검색조건 설정시 전체,True,False같은 형태라면 Front에서도 햇갈리지 않게 Enum으로 설정!
    • getMany만 쓴다면 getMany()만 getManyAndCount만쓴다면 getManyAndCount()만 사용해서 코드가 동일하게 바꿔주세요~
    • 삼항연산자를 많이 연결하면 가독성이 떨어지니 Enum으로 바꿔주세요
    • 정해진값을 검색할땐 Like말고 분기처리후 =로 검색
    • QueryBuilder에서 공통되는 부분은 그대로 사용하고 이후에 해당하는 조건이 잇다면 if문으로 where를 걸어 해결해주세요~

사진찍는날이라 작업을 많이 못했습니다!!

Today Sprint

  • 어제날린 PR에서 피드백 받은 부분수정
    • BE에서 나름 수정한다하더라도 FE에서 날리는값을 정확하게 인지하지 못한다면 작업할때 어려울수 있으니 Enum타입과 같이 더 쓰기 쉬운값으로 교체
    • GraphQL에서 Args를 사용할때 그냥 number로 지정하면 float가 되니 정수형을 사용한다면 type을 꼭 지정해줘야한다.
    • 예기치못한 입력에대한 예외처리는 꼭 꼭..
    • QueryBuilder에서 공통되는 부분이후 조건문 분기작업중 발견한 오류들
      1. andWhere에서 두개의 Where문을걸면 인식을 못한다
      2. getManyAndCount()와 같이 결과를 반환하는 메소드를 사용하면 SelectQueryBuilder를 뱉는다

위의 오류 해결한 방법

// 1. `andWhere`에서 두개의 Where문을걸면 인식을 못한다
        .andWhere(
          new Brackets((qb) => {
            qb.where('mydb.l like (:lll)', {
              lll: `%${String}%`,
            }).orWhere('mydb.t like (:ttt)', {
              ttt: `%${String}%`,
            });
          }),
        )
//`Brackets`를 활용해 안에서 `orWhere`을 거는걸로 해결
// `getManyAndCount()`와 같이 결과를 반환하는 메소드를 사용하면 SelectQueryBuilder를 뱉는다
      mydbs = this.mydbRepository
        .createQueryBuilder('mydb')
        .leftJoinAndSelect('mydb.mydb2', 'mydb2')
        .where('mydb2.name like (:names)', {
          names: `%${name}%`,
        })
      if (casebycase !== 'ALL') {
        mydbs.andWhere('mydb.case = (:case)', {
          case: casebycase,
        });
      }
      courseIds.take(take);
      courseIds.skip(take * (page - 1));
      courseIds = await courseIds.getManyAndCount();
/* 
결과를 반환하는 get~~~()같은 경우 
await로 기다려도 재할당을 하지않으면 
SelectQueryBuilder{...} 형태로 반환되기때문에
await로 재할당을 해야지만 원하는 Promise<T,number>가 날라간다
*/

0개의 댓글