books relatios

const conn = require('../mariadb');
const { StatusCodes } = require('http-status-codes');
const dotenv = require('dotenv');
dotenv.config();
const allBooks = (req, res) => {
res.json('전체 도서 조회 ');
};
const bookDetail = (req, res) => {
res.json('개별 도서 조회');
};
const booksByCategory = (req, res) => {
res.json('카테고리별 도서 목록 조회');
};
module.exports = {
allBooks,
bookDetail,
booksByCategory
};
const allBooks = (req, res) => {
const sql = `SELECT * FROM books`;
conn.query(sql, (err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(results);
})
};
const bookDetail = (req, res) => {
let { id } = req.params;
const sql = `SELECT * FROM books WHERE id = ?`;
conn.query(sql, id,
(err, results)=> {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (results[0])
return res.status(StatusCodes.OK).json(results[0]);
else
return res.status(StatusCodes.NOT_FOUND).end();
}
)
};


const booksByCategory = (req, res) => {
let { category_id } = req.query;
const sql = `SELECT * FROM books WHERE category_id = ?`;
conn.query(sql, category_id,
(err, results)=> {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (results.length)
return res.status(StatusCodes.OK).json(results);
else
return res.status(StatusCodes.NOT_FOUND).end();
}
)
};
기존 전체 도서 조회랑 API가 겹쳐서 문제가 생긴다.
API를 합쳐야 할것 같다.
- 전체 도서 조회에서 쿼리가 있으면 카테고리 별 도서 조회로
- 쿼리가 없으면 전체 도서 조회로
const allBooks = (req, res) => {
let { category_id } = req.query;
if (category_id) {
let sql = `SELECT * FROM books WHERE category_id = ?`;
conn.query(sql, category_id,
(err, results)=> {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (results.length)
return res.status(StatusCodes.OK).json(results);
else
return res.status(StatusCodes.NOT_FOUND).end();
}
)
} else {
sql = `SELECT * FROM books`;
conn.query(sql, (err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(results);
})
}
};

const conn = require('../mariadb');
const { StatusCodes } = require('http-status-codes');
const dotenv = require('dotenv');
dotenv.config();
const allCategory = (req, res) => {
let sql = `SELECT * FROM category`;
conn.query(sql, (err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(results);
})
}
module.exports = {
allCategory
};