reviewAPI와 구매이력확인API 는 프로젝트 마지막쯤에 급하게 생각해서 구현한 것이라서 첫번째 구매 영수증만 참고되어 이후 다른 제품을 구매하더라도 리뷰달기가 안된다는 문제가 있었습니다. 구매이력확인 API또한 마찬가지로 같은 문제가 발생하고 있었습니다.
const [{ lists }] = await appDataSource.query(
`SELECT
lists
FROM receipt
WHERE user_id = ?`,
[userId]
);
const result = lists.filter((order) => order.productId == productId);
return result;
위의 코드는 당연하게도 해당유저의 영수증이 몇개가 있든 한개만 가져와서 리뷰를 작성하고 싶은 제품의 아이디만 체크합니다
영수증테이블의 저장되는 데이터입니다.
수정이후 코드입니다.
이후 서비스 단계에서 리뷰를 적고 싶은 productId가 배열에 있는지 확인하는 것으로 수정하였습니다
const lists = await appDataSource.query(
`SELECT
lists
FROM receipt
WHERE user_id = ?`,
[userId]
);
const resultArray = Array.isArray(lists) ? lists : [lists];
let result = [];
resultArray.forEach((list) => {
if (list.lists.length == 1) {
result.push(list.lists[0].productId);
} else {
list.lists.forEach((element) => {
result.push(element.productId);
});
}
});
return result;
'etc' 카테고리의 다른 글
Yarn berry VS pnpm (1) | 2023.11.24 |
---|---|
WEB프로젝트 - Woori-Dongne 🏙️ (0) | 2023.08.18 |
AWS - S3 (0) | 2023.05.21 |
WEB프로젝트_TEAM_DREAM🧱 (0) | 2023.05.05 |
첫 WEB프로젝트 회고 - unic5n🦄 가구이커머스 모델링 (1) | 2023.04.15 |