BookStore - 결제(주문) API 설계

데브코스

목록 보기
67/133

결제(주문) API 설계


const conn = require('../mariadb');
const { StatusCodes } = require('http-status-codes');

const order = (req, res) => {
    const { items, delivery, totalQuantity, totalPrice, userId, firstBookTitle } = req.body;

    let delivery_id = 3;
    let order_id = 2;

    let sql = "INSERT INTO delivery (address, receiver, contact) VALUES (?, ?, ?)";
    let values = [delivery.address, delivery.receiver, delivery.contact]
    // conn.query(sql, values,
    //     (err, results) => {
    //         if (err) {
    //             console.log(err);
    //             return res.status(StatusCodes.BAD_REQUEST).end();
    //         }

    //         delivery_id = results.insertId;

    //         return res.status(StatusCodes.CREATED).json(results);
    //     })

    sql = `INSERT INTO orders (book_title, total_quantity, total_price, user_id, delivery_id) 
            VALUES (?, ?, ?, ?, ?)`;
    values = [firstBookTitle, totalQuantity, totalPrice, userId, delivery_id];
    // conn.query(sql, values,
    //     (err, results) => {
    //         if (err) {
    //             console.log(err);
    //             return res.status(StatusCodes.BAD_REQUEST).end();
    //         }

    //         order_id = results.insertId;
    //         console.log(order_id);

    //         return res.status(StatusCodes.CREATED).json(results);
    //     });

    sql = `INSERT INTO orderedBook (order_id, book_id, quantity) VALUES ?`;
    // items = 배열 -> 요소를 하나씩 꺼내서(foreach)
    values = [];
    items.forEach((item) => {
        values.push([order_id, item.book_id, item.quantity])
    })
    conn.query(sql, [values],
        (err, results) => {
            if (err) {
                console.log(err);
                return res.status(StatusCodes.BAD_REQUEST).end();
            }

            return res.status(StatusCodes.CREATED).json(results);
        });
};

const getOrders = (req, res) => {

};

const getOrderDetail = (req, res) => {

};

module.exports = { order, getOrders, getOrderDetail }

orders.js

const express = require('express')
const router = express.Router();
const { order, getOrders, getOrderDetail } = require('../controller/orderController');

router.use(express.json());

router.post('/', order); // 주문하기
router.get('/', getOrders); // 주문 목록 조회
router.get('/:id', getOrderDetail); // 주문 상세 상품 조회

module.exports = router
profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글