728x90
payment api에서 다시 만들기
오류
더보기
Argument `ownerId` is missing.
PrismaClientValidationError:
Invalid `prisma.restaurant.findFirst()` invocation:
{
where: {
+ ownerId: {
+ equals: Int | IntFieldRefInput,
+ in: Int[],
+ notIn: Int[],
+ lt: Int | IntFieldRefInput,
+ lte: Int | IntFieldRefInput,
+ gt: Int | IntFieldRefInput,
+ gte: Int | IntFieldRefInput,
+ not: Int | NestedIntFilter
+ }
},
select: {
restaurantId: true,
restaurantName: true,
totalPoint: true
}
}
Argument `ownerId` is missing.
at wn (V:\Sparta\Baedal_Minjok\250113\Back-Office\node_modules\@prisma\client\runtime\library.js:29:1363)
at Vn.handleRequestError (V:\Sparta\Baedal_Minjok\250113\Back-Office\node_modules\@prisma\client\runtime\library.js:121:6982)
at Vn.handleAndLogRequestError (V:\Sparta\Baedal_Minjok\250113\Back-Office\node_modules\@prisma\client\runtime\library.js:121:6663)
at Vn.request (V:\Sparta\Baedal_Minjok\250113\Back-Office\node_modules\@prisma\client\runtime\library.js:121:6370)
at async l (V:\Sparta\Baedal_Minjok\250113\Back-Office\node_modules\@prisma\client\runtime\library.js:130:9617)
at async paymentRepository.findRestaurant (file:///V:/Sparta/Baedal_Minjok/250113/Back-Office/src/repositories/payment.repository.js:22:12)
at async paymentService.getRestaurantPoint (file:///V:/Sparta/Baedal_Minjok/250113/Back-Office/src/services/payment.service.js:16:24)
at async paymentController.getRestaurantPoint (file:///V:/Sparta/Baedal_Minjok/250113/Back-Office/src/controllers/payment.controller.js:32:20) {
clientVersion: '6.2.1'
}
findMany인데 findFirst로 조회 시도함
주문 진행 현황 조회가 아니라 레스토랑 id 조회가 실행됨
복사붙여넣기 하다가 라우터에 연결된 컨트롤러 변수를 다른걸로 붙여 넣었음.
해결.
주문값이 읽어지지 않음
배열인데 객체로 생각해서 생긴 오류였음
// 주문 진행 조회
async orderInfo({ userId, restaurantId }) {
console.log('주문현황 조회S');
if (!userId && !restaurantId) {
console.error('userId와 restaurantId가 모두 null 또는 undefined입니다.');
return null;
}
const whereCondition = userId
? { userId: Number(userId) }
: { restaurantId: Number(restaurantId) };
// 문자열을 숫자로 변환
//userId = Number(userId);
// restaurantId = Number(restaurantId);
console.log('주문현황 조회S1');
const orderInfo =
await this.#repository.getOrderIdByPayment(whereCondition);
console.log('주문현황 조회S2');
if (!orderInfo || orderInfo.length === 0) {
throw new Error('Failed to read payment list');
}
console.log('해당값 있음');
console.log('orderInfo : ', orderInfo);
// orderInfo가 배열
// 반환할 데이터 구성
const data = orderInfo.map((v) => {
const orderData = v.order.map((e2) => {
// cartDetail이 존재하는지 확인
const cartDetails = e2.cart?.cartDetail || [];
const cartItems = cartDetails.map(
(item) => `${item.menuName} - ${item.count}개`,
);
// 데이터 구조화
return {
menu: cartItems, // 메뉴 정보
status: e2.status, // 주문 상태
};
});
return {
payment: {
paymentId: v.paymentId,
total_price: v.total_price,
order_time: v.order_time,
},
order: orderData,
user: {
userName: v.user.name || '너도이름없냐',
userAddress: v.user.address?.[0]?.address || '주소 없음',
},
restaurant: {
ownerId: v.restaurant.ownerId,
restaurantAddress: v.restaurant.address,
restaurantPhoneNumber: v.restaurant.phoneNumber,
restaurantName: v.restaurant.restaurantName,
averageStar: v.restaurant.averageStar || 0,
},
};
});
console.log('처리후 데이터 : ', data);
return { data };
}
// 주문 진행 현황 조회
async getOrderIdByPayment(id) {
console.log('주문현황 조회', id);
// const whereCondition = userId ? { userId } : { restaurantId };
return await this.#orm.Payment.findMany({
where: id,
orderBy: { paymentId: 'desc' },
select: {
paymentId: true,
total_price: true,
order_time: true,
restaurant: {
select: {
ownerId: true,
address: true,
phoneNumber: true, // 식당전화
restaurantName: true,
averageStar: true,
},
},
user: {
select: {
name: true,
address: {
where: { mainAddress: true },
select: { address: true },
},
},
},
order: {
select: {
cart: {
select: {
cartDetail: { select: { menuId: true, count: true } },
},
},
status: true,
},
},
},
});
}
'내일배움 과제 > CH4-2(배달앱)' 카테고리의 다른 글
내가 만든 부분 회고 (0) | 2025.01.16 |
---|---|
주문현황 프론트 (0) | 2025.01.14 |
테스트 중에 막힌 것 250109 (0) | 2025.01.09 |
식당 조회 api 구현 (0) | 2025.01.08 |
6조 과제 설계 (0) | 2025.01.06 |