GraphQL Args
에서 :number
로 지정하면 float
가 되니 정수형으로 변경해주세요~type: () => Int
로 지정Front
에서도 햇갈리지 않게 Enum
으로 설정!getMany
만 쓴다면 getMany()만 getManyAndCount
만쓴다면 getManyAndCount()만 사용해서 코드가 동일하게 바꿔주세요~Enum
으로 바꿔주세요Like
말고 분기처리후 =
로 검색QueryBuilder
에서 공통되는 부분은 그대로 사용하고 이후에 해당하는 조건이 잇다면 if
문으로 where
를 걸어 해결해주세요~사진찍는날이라 작업을 많이 못했습니다!!
Today Sprint
- 어제날린 PR에서 피드백 받은 부분수정
BE
에서 나름 수정한다하더라도FE
에서 날리는값을 정확하게 인지하지 못한다면 작업할때 어려울수 있으니Enum
타입과 같이 더 쓰기 쉬운값으로 교체GraphQL
에서Args
를 사용할때 그냥number
로 지정하면float
가 되니 정수형을 사용한다면type
을 꼭 지정해줘야한다.- 예기치못한 입력에대한 예외처리는 꼭 꼭..
QueryBuilder
에서 공통되는 부분이후 조건문 분기작업중 발견한 오류들
andWhere
에서 두개의 Where문을걸면 인식을 못한다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>가 날라간다
*/