diff --git a/src/api/cards/controller.js b/src/api/cards/controller.js index 5d4e07d..ac00941 100644 --- a/src/api/cards/controller.js +++ b/src/api/cards/controller.js @@ -177,6 +177,47 @@ exports.inquiry = async (req, res) => { return res.send(response); }; +// 모든 명함 페이징 조회 +exports.findAll = async (req, res) => { + let page = req.query.page; + let size = req.query.size; + + // 숫자 정규식 + const regExp = /^[0-9]+$/; + + // page, size가 숫자형이 아닐 경우 + if ( + !page || + !size || + !regExp.test(page) || + !regExp.test(size) + ) { + return res.send({ + isSuccess: false, + message: "page, size는 숫자형으로 입력해주세요", + }); + } + + page = Number(page); + size = Number(size); + + // page 또는 size가 0 이하일 경우 + if (page < 0 || size < 0) { + return res.send({ + isSuccess: false, + message: "page 또는 size는 0 이하로 입력할 수 없습니다.", + }); + } + + const findList = await repository.findAll(page, size); + + console.log(findList); + + return res.send({ + isSuccess: true, + result: findList, + }); +} //특정 명함 정보 리스트 반환 exports.inquiry_list = async (req, res) => { diff --git a/src/api/cards/repogitory.js b/src/api/cards/repogitory.js index 03d3a0d..ce1e8ee 100644 --- a/src/api/cards/repogitory.js +++ b/src/api/cards/repogitory.js @@ -38,6 +38,14 @@ exports.show_all = async (id) => { return result.length < 0 ? null : result; }; +// 모든 명함 최신순 페이징 조회 +exports.findAll = async (page, size) => { + const query = ` + SELECT cards.* FROM cards ORDER BY created_at desc LIMIT ? OFFSET ?`; + const result = await pool(query, [size, page * size]); + return result.length < 0 ? null : result; +}; + //특정 명함 전체 조회(이름 일치) exports.show_all_as_name = async (name) => { const query = ` diff --git a/src/router.js b/src/router.js index 880edde..420eb81 100644 --- a/src/router.js +++ b/src/router.js @@ -46,6 +46,9 @@ router.post( verify, cardsController.register ); +// 명함 전체 페이징 조회 +router.get("/api/cards", cardsController.findAll); + router.get("/api/cards/search/:cardId", cardsController.inquiry); router.get("/api/cards/search/list/:name", cardsController.inquiry_list); router.get("/api/cards/search/all/:userId", cardsController.inquiry_all);