From 25337b692710ca738716111941cd86d77e64d9d7 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:30:20 +0900 Subject: [PATCH 1/8] feat: add get book pre, peri, post routes --- src/router/book.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/router/book.ts b/src/router/book.ts index 692fd3e..aecd663 100644 --- a/src/router/book.ts +++ b/src/router/book.ts @@ -10,5 +10,8 @@ const router = express.Router(); router.post("/", isLogin, bookController.postBookController); router.get("/", auth, bookController.getBookController); +router.get("/pre", auth, bookController.getBookPreController); +router.get("/peri", auth, bookController.getBookPeriController); +router.get("/post", auth, bookController.getBookPostController); module.exports = router; From 5bebfa36e6124f4b80894c767009f392f4c69e2f Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:31:48 +0900 Subject: [PATCH 2/8] feat: add controller logic, response --- src/controller/book.ts | 84 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/src/controller/book.ts b/src/controller/book.ts index 4f3a330..5086f61 100644 --- a/src/controller/book.ts +++ b/src/controller/book.ts @@ -108,9 +108,93 @@ const getBookController = async (req: Request, res: Response) => { } }; +/** + * @서재 독서전 책 조회 + * @route GET /book/pre + * @access private + */ +const getBookPreController = async (req: Request, res: Response) => { + try { + const resData = await bookService.getBookPreService(req.user.id); + return response.dataResponse( + res, + returnCode.OK, + true, + "독서전 서재 조회 성공", + resData + ); + } catch (err) { + slack.slackWebhook(req, err.message); + console.error(err.message); + return response.basicResponse( + res, + returnCode.INTERNAL_SERVER_ERROR, + false, + "서버 오류" + ); + } +}; + +/** + * @서재 독서중 책 조회 + * @route GET /book/peri + * @access private + */ +const getBookPeriController = async (req: Request, res: Response) => { + try { + const resData = await bookService.getBookPeriService(req.user.id); + return response.dataResponse( + res, + returnCode.OK, + true, + "독서중 서재 조회 성공", + resData + ); + } catch (err) { + slack.slackWebhook(req, err.message); + console.error(err.message); + return response.basicResponse( + res, + returnCode.INTERNAL_SERVER_ERROR, + false, + "서버 오류" + ); + } +}; + +/** + * @서재 독서완료 책 조회 + * @route GET /book/post + * @access private + */ +const getBookPostController = async (req: Request, res: Response) => { + try { + const resData = await bookService.getBookPostService(req.user.id); + return response.dataResponse( + res, + returnCode.OK, + true, + "독서완료 서재 조회 성공", + resData + ); + } catch (err) { + slack.slackWebhook(req, err.message); + console.error(err.message); + return response.basicResponse( + res, + returnCode.INTERNAL_SERVER_ERROR, + false, + "서버 오류" + ); + } +}; + const bookController = { postBookController, getBookController, + getBookPreController, + getBookPeriController, + getBookPostController, }; export default bookController; From e4f26096317bdc324f4f3dc7ea5b54f8a33c9f5a Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:48:30 +0900 Subject: [PATCH 3/8] feat: add get book pre service logic --- src/service/book.ts | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/service/book.ts b/src/service/book.ts index 05339a5..3793d31 100644 --- a/src/service/book.ts +++ b/src/service/book.ts @@ -133,7 +133,43 @@ const getBookService = async (userId: number) => { thumbnail: review.book.thumbnail, title: review.book.title, author: review.book.author, - state: review.reviewSt, + reviewSt: review.reviewSt, + }); + }) + ); + + return { books: books }; +}; + +/** + * @서재 독서전 책 조회 + * @route GET /book/pre + * @access private + */ +const getBookPreService = async (userId: number) => { + let books = []; + await Review.findAll({ + attributes: ["id", "reviewSt"], + include: [ + { + model: Book, + attributes: ["title", "author", "thumbnail"], + }, + ], + where: { + userId, + reviewSt: 2, + isDeleted: false, + }, + order: [["updatedAt", "DESC"]], + }).then((reviews) => + reviews.forEach((review) => { + books.push({ + reviewId: review.id, + thumbnail: review.book.thumbnail, + title: review.book.title, + author: review.book.author, + reviewSt: review.reviewSt, }); }) ); @@ -144,6 +180,9 @@ const getBookService = async (userId: number) => { const bookService = { postBookService, getBookService, + getBookPreService, + // getBookPeriService, + // getBookPostService, }; export default bookService; From 274c2f238588d28c4e855f21117a7a0e73f42113 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:50:18 +0900 Subject: [PATCH 4/8] feat: get-book-peri service logic --- src/service/book.ts | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/service/book.ts b/src/service/book.ts index 3793d31..8ca6b6b 100644 --- a/src/service/book.ts +++ b/src/service/book.ts @@ -177,11 +177,47 @@ const getBookPreService = async (userId: number) => { return { books: books }; }; +/** + * @서재 독서중 책 조회 + * @route GET /book/peri + * @access private + */ +const getBookPeriService = async (userId: number) => { + let books = []; + await Review.findAll({ + attributes: ["id", "reviewSt"], + include: [ + { + model: Book, + attributes: ["title", "author", "thumbnail"], + }, + ], + where: { + userId, + reviewSt: 3, + isDeleted: false, + }, + order: [["updatedAt", "DESC"]], + }).then((reviews) => + reviews.forEach((review) => { + books.push({ + reviewId: review.id, + thumbnail: review.book.thumbnail, + title: review.book.title, + author: review.book.author, + reviewSt: review.reviewSt, + }); + }) + ); + + return { books: books }; +}; + const bookService = { postBookService, getBookService, getBookPreService, - // getBookPeriService, + getBookPeriService, // getBookPostService, }; From 56b59e789e82518549ef97b7cfbd2a9a0ec49315 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:50:41 +0900 Subject: [PATCH 5/8] feat: get-book-peri controller logic --- src/controller/book.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controller/book.ts b/src/controller/book.ts index 5086f61..21f5504 100644 --- a/src/controller/book.ts +++ b/src/controller/book.ts @@ -169,7 +169,7 @@ const getBookPeriController = async (req: Request, res: Response) => { */ const getBookPostController = async (req: Request, res: Response) => { try { - const resData = await bookService.getBookPostService(req.user.id); + const resData = await bookService.getBookService(req.user.id); return response.dataResponse( res, returnCode.OK, From 06abf06992f0f2cbe8bf098d3f5b3bc9c2006cc9 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:52:28 +0900 Subject: [PATCH 6/8] feat: get-book-post controller logic --- src/controller/book.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controller/book.ts b/src/controller/book.ts index 21f5504..5086f61 100644 --- a/src/controller/book.ts +++ b/src/controller/book.ts @@ -169,7 +169,7 @@ const getBookPeriController = async (req: Request, res: Response) => { */ const getBookPostController = async (req: Request, res: Response) => { try { - const resData = await bookService.getBookService(req.user.id); + const resData = await bookService.getBookPostService(req.user.id); return response.dataResponse( res, returnCode.OK, From 18456ceb592b893964e566510b68ade5ce38d641 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:52:37 +0900 Subject: [PATCH 7/8] feat: get-book-post service logic --- src/service/book.ts | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/service/book.ts b/src/service/book.ts index 8ca6b6b..edc1bc1 100644 --- a/src/service/book.ts +++ b/src/service/book.ts @@ -213,12 +213,48 @@ const getBookPeriService = async (userId: number) => { return { books: books }; }; +/** + * @서재 독서완료 책 조회 + * @route GET /book/post + * @access private + */ +const getBookPostService = async (userId: number) => { + let books = []; + await Review.findAll({ + attributes: ["id", "reviewSt"], + include: [ + { + model: Book, + attributes: ["title", "author", "thumbnail"], + }, + ], + where: { + userId, + reviewSt: 4, + isDeleted: false, + }, + order: [["updatedAt", "DESC"]], + }).then((reviews) => + reviews.forEach((review) => { + books.push({ + reviewId: review.id, + thumbnail: review.book.thumbnail, + title: review.book.title, + author: review.book.author, + reviewSt: review.reviewSt, + }); + }) + ); + + return { books: books }; +}; + const bookService = { postBookService, getBookService, getBookPreService, getBookPeriService, - // getBookPostService, + getBookPostService, }; export default bookService; From 632ae7b962cb346545916403dd8ab5757f9e4d49 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Tue, 8 Feb 2022 01:59:19 +0900 Subject: [PATCH 8/8] fix: swap success message and response message --- src/controller/book.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/controller/book.ts b/src/controller/book.ts index 5086f61..5dd1ad8 100644 --- a/src/controller/book.ts +++ b/src/controller/book.ts @@ -92,8 +92,8 @@ const getBookController = async (req: Request, res: Response) => { return response.dataResponse( res, returnCode.OK, - true, "서재 조회 성공", + true, resData ); } catch (err) { @@ -119,8 +119,8 @@ const getBookPreController = async (req: Request, res: Response) => { return response.dataResponse( res, returnCode.OK, - true, "독서전 서재 조회 성공", + true, resData ); } catch (err) { @@ -146,8 +146,8 @@ const getBookPeriController = async (req: Request, res: Response) => { return response.dataResponse( res, returnCode.OK, - true, "독서중 서재 조회 성공", + true, resData ); } catch (err) { @@ -173,8 +173,8 @@ const getBookPostController = async (req: Request, res: Response) => { return response.dataResponse( res, returnCode.OK, - true, "독서완료 서재 조회 성공", + true, resData ); } catch (err) {