[DevCamp] 스프린트 프로젝트 2 - 주문 기능 구현

동건·2025년 3월 18일

DevCamp

목록 보기
30/85

스프린트 프로젝트 2 - 주문 기능 구현

오늘은 주문과 관련된 기능을 구현하는 시간을 가졌다.

order

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 = 1;

    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 ?;`;

    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) => {
    res.status(200).json({
        message : "주문 목록(내역) 조회 성공"
    })
};

const getOrderDetail = (req, res) => {
    const orderId = req.params.orderId;
    
    res.status(200).json({
        orderId : orderId,
        message : "주문 상세 상품 조회 성공"
    })
};

module.exports = {
    order,
    getOrders,
    getOrderDetail
};

테스트를 위해서 SQL 연결은 다 테스트를 통과시키고 주석 처리를 해두었다.
추후에 리팩토링을 할 예정이다.

성공적으로 주문에 성공을 했다.

profile
배고픈 개발자

0개의 댓글