본문 바로가기
내일배움 과제/CH4-2(배달앱)

주문현황 프론트

by GREEN나무 2025. 1. 14.
728x90

 

 

 

 

 

 


가게

결제 테이블에서 자신의 레스토랑 id 와 일치하는 모든 pamentId 가져오기
위에 녹색 상자를 가져온  pamentId 만큼 만듧. 

pamentId로 조회한 order 테이블의 데이터의 주문 상태가 준비중 -> 준비완료 -> 배송중 -> 배송완료,취소 순으로 그 안에서 주문생성 시간 순으로 배열하기

 

진행상황 

 - 준비중 / 준비완료 / 배송중 / 배송완료 /취소  (order)

 

주문내역

 - 메뉴(order)

 - 개수(order)

 

고객정보

 - 고객 이름

 - 주소

 


고객

결제 테이블에서 자신의 id 와 일치하는 모든 pamentId 가져오기

위에 녹색 상자를 가져온  pamentId 만큼 만듧. 

pamentId로 조회한 order 테이블의 데이터의 주문 상태가 배송전전 -> 배송완료,취소 순으로 그 안에서 주문생성 시간 순으로 배열하기

 


진행상황 

 - 준비중 / 준비완료 / 배송중 / 배송완료 /취소  (order)

 - 여러 가게면 가장 이른 상태로 표시

 

주문내역

표시

<상호명> 메뉴 - 개수  상태
<성심당> 잠봉베르 센트위치 - 15개  준비중

 - 레스토랑 이름(레스토랑 테이블)

 - 메뉴(order)

 - 개수(order)

- 상태(order)

 

가게정보

 - 상호명

 - 주소

 - 평점

 

고객의 주문 취소는 배달중 일 때 불가

 


컬럼 추가

 
윤예원(Node.js_7기)  오후 8:50
OrderType 에  CANCELED 추가하고, Payment테이블에  address컬럼(배송지)을 추가해도 될까요?
 
 
박찬우(Node.js_7기)  오후 8:52
오더 타입에 캔슬드는 좋은데 결제내역 테이블에 보다는 주문내역테이블에 추가하는게 좋을 것 같아요
 혹시 결제내역 테이블에 주소가 들어가야 할 이유가 있을까요??
들어가는 이유만 괜찮으면 좋을 것 같습니다
 
윤예원(Node.js_7기)  오후 8:55
기존에 있던 코드에는 주문자의 주소를 지정하지 않았습니다.
고객의 주소를 찾으려면 userId -> address테이블로 가는데
주소가 여러개 있어서 따로 저장할 공간이 필요했습니다

 


라우터

import express from 'express';
import orderController from '../controllers/order.controller.js';
import { requireAccessToken } from '../middlewares/authorization.middleware.js';

const router = express.Router();

// 주문하기 <- 배송지 추가
router.post(
  '/users/me/orders',
  requireAccessToken,
  orderController.createOrder,
);

// 주문취소
router.delete(
  '/users/me/orders/:id',
  requireAccessToken,
  orderController.deleteOrder,
);


// 주문내역 조회 - 가게
router.get(
  '/owners/me/orders/:id',
  requireAccessToken,
  orderController.orderInfo,
);

// 주문상태 수정 - 유저
router.patch(
  '/users/me/orders/state/:id',
  requireAccessToken,
  orderController.editStatus,
);

// 주문상태 수정 - 가게
router.patch(
  '/owners/me/orders/state/:id',
  requireAccessToken,
  orderController.editStatus,
);

export default router;

 

 

 


테스트 하기

※ 테스트 파일 명명 규칙

Jest는 기본적으로 __tests__ 폴더에 있거나 파일명이 .test.js 또는 .spec.js로 끝나는 파일을 테스트 파일로 인식합니다. 예를 들어:

  • 파일명: order.repository.test.js

1. Jest 설치

npm install --save-dev jest

2. package.json 설정

package.json 파일에 테스트 스크립트를 추가합니다.

{
  "scripts": {
    "test": "jest"
  }
}

 

3. Mock Prisma 설정

Prisma와의 통합 테스트를 실행하려면 Prisma의 Mocking을 설정해야 합니다. Jest를 사용하면 jest.mock으로 Prisma를 간단히 Mock할 수 있습니다. 이 부분은 위에서 제공된 코드에 포함되어 있습니다.

 

4. Jest 설정 커스터마이징 (Optional)

프로젝트 루트에 jest.config.js 파일을 생성해 Jest의 설정을 변경할 수 있습니다. 예:

module.exports = {
  testEnvironment: 'node', // Node.js 환경에서 테스트 실행
  verbose: true,           // 상세한 테스트 결과 출력
  transform: {},           // 바벨 트랜스폼 설정 (필요한 경우)
};

 

5. 테스트 실행

아래 명령어로 테스트를 실행합니다.

npm test

또는 좀 더 상세한 결과를 보고 싶다면:

npm test -- --verbose

 


 

 

'내일배움 과제 > CH4-2(배달앱)' 카테고리의 다른 글

내가 만든 부분 회고  (0) 2025.01.16
주문진행, 내역 화면  (0) 2025.01.15
테스트 중에 막힌 것 250109  (0) 2025.01.09
식당 조회 api 구현  (0) 2025.01.08
6조 과제 설계  (0) 2025.01.06