From fa355fdbfebc8c73c9379625109d3046d6ba7898 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 10:34:23 +0900 Subject: [PATCH 1/6] feat: review now controller --- src/controller/review.ts | 58 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/controller/review.ts b/src/controller/review.ts index 83fe038..ef89d34 100644 --- a/src/controller/review.ts +++ b/src/controller/review.ts @@ -17,6 +17,8 @@ import reviewService from "../service/review"; * @access private * @error * 1. 요청 값이 잘못됨 + * 2. 존재하지 않는 ISBN + * 3. 이미 존재하는 독후감 */ const postReviewBeforeController = async (req: Request, res: Response) => { try { @@ -55,7 +57,60 @@ const postReviewBeforeController = async (req: Request, res: Response) => { res, returnCode.OK, true, - "독서 중 등록 성공", + "독서단계이동 (전 -> 중)", + resData + ); + } + } catch (err) { + slack.slackWebhook(req, err.message); + console.error(err.message); + response.basicResponse( + res, + returnCode.INTERNAL_SERVER_ERROR, + false, + "서버 오류" + ); + } +}; + +/** + * @독서중 독서 중 작성 + * @route POST /review/now/:reviewId + * @access private + * @error + * 1. 요청 값이 잘못됨 + * 2. 존재하지 않는 ISBN + * 3. 이미 존재하는 독후감 + */ +const postReviewNowController = async (req: Request, res: Response) => { + try { + const resData = await reviewService.postReviewNowService( + Number(req.params.reviewId), + req.body.userID.id, + req.body.answerThree, + req.body.progress + ); + + if (resData === constant.NULL_VALUE) { + response.basicResponse( + res, + returnCode.BAD_REQUEST, + false, + "요청값이 없습니다." + ); + } else if (resData === constant.WRONG_REQUEST_VALUE) { + response.basicResponse( + res, + returnCode.BAD_REQUEST, + false, + "존재하지 않은 Review입니다." + ); + } else { + response.dataResponse( + res, + returnCode.OK, + true, + "독서단계이동 (중 -> 완료)", resData ); } @@ -73,6 +128,7 @@ const postReviewBeforeController = async (req: Request, res: Response) => { const reviewController = { postReviewBeforeController, + postReviewNowController, }; export default reviewController; From b9d6fc31b6c4c8d272a058f0a51e176bf4281c72 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 10:34:43 +0900 Subject: [PATCH 2/6] feat: review now service --- src/service/review.ts | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/service/review.ts b/src/service/review.ts index ecfbefb..f97e7fd 100644 --- a/src/service/review.ts +++ b/src/service/review.ts @@ -13,6 +13,8 @@ import { User, Book, Review } from "../models"; * @access private * @error * 1. 요청 값이 잘못됨 + * 2. 존재하지 않는 ISBN + * 3. 이미 존재하는 독후감 */ const postReviewBeforeService = async ( isbn: string, @@ -88,8 +90,56 @@ const postReviewBeforeService = async ( return { reviewId: review.id }; }; +/** + * @독서중 독서 중 작성 + * @route POST /review/now/:reviewId + * @access private + * @error + * 1. 요청 값이 잘못됨 + * 2. 존재하지 않는 ISBN + * 3. 이미 존재하는 독후감 + */ + +const postReviewNowService = async ( + reviewId: number, + userId: number, + answerThree: JSON, + progress: number +) => { + if (!reviewId || !userId || !answerThree || !progress) { + return constant.NULL_VALUE; + } + + // user 확인 + const user = await User.findOne({ where: { id: userId } }); + + // 해당 review 조회 + const review = await Review.findOne({ + where: { + [Op.and]: [{ id: reviewId }, { user_id: user.id }, { is_deleted: false }], + }, + }); + + // 2. 존재하지 않은 review + if (!review) { + return constant.WRONG_REQUEST_VALUE; + } + + // 3. review update + review.update({ + answer_three: answerThree, + progress: progress, + }); + + // 변경 리뷰 저장 + review.save(); + + return { reviewId: review.id }; +}; + const reviewService = { postReviewBeforeService, + postReviewNowService, }; export default reviewService; From 94ab8fa3558c5e0e32e23ff8802876c84c991bbe Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 10:35:08 +0900 Subject: [PATCH 3/6] feat: revew now route --- src/router/review.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/router/review.ts b/src/router/review.ts index 9b63612..38f9741 100644 --- a/src/router/review.ts +++ b/src/router/review.ts @@ -13,4 +13,11 @@ router.post( reviewController.postReviewBeforeController ); +// 독서 중 +router.patch( + "/now/:reviewId", + authMiddleware, + reviewController.postReviewNowController +); + module.exports = router; From 04a6cb9ea9fc51400d0254308c197f2ab15f3739 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 10:38:46 +0900 Subject: [PATCH 4/6] fix: description --- src/controller/review.ts | 3 +-- src/service/review.ts | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/controller/review.ts b/src/controller/review.ts index ef89d34..f8ccae6 100644 --- a/src/controller/review.ts +++ b/src/controller/review.ts @@ -79,8 +79,7 @@ const postReviewBeforeController = async (req: Request, res: Response) => { * @access private * @error * 1. 요청 값이 잘못됨 - * 2. 존재하지 않는 ISBN - * 3. 이미 존재하는 독후감 + * 2. 존재하지 않는 Review */ const postReviewNowController = async (req: Request, res: Response) => { try { diff --git a/src/service/review.ts b/src/service/review.ts index f97e7fd..7f79d57 100644 --- a/src/service/review.ts +++ b/src/service/review.ts @@ -96,10 +96,8 @@ const postReviewBeforeService = async ( * @access private * @error * 1. 요청 값이 잘못됨 - * 2. 존재하지 않는 ISBN - * 3. 이미 존재하는 독후감 + * 2. 존재하지 않는 Review */ - const postReviewNowService = async ( reviewId: number, userId: number, From 01abaf88bd70639360e25aa3ea96894a49418284 Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 19:11:54 +0900 Subject: [PATCH 5/6] fix: response message --- src/controller/review.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controller/review.ts b/src/controller/review.ts index f8ccae6..9627612 100644 --- a/src/controller/review.ts +++ b/src/controller/review.ts @@ -57,7 +57,7 @@ const postReviewBeforeController = async (req: Request, res: Response) => { res, returnCode.OK, true, - "독서단계이동 (전 -> 중)", + "작성이 완료되었습니다.", resData ); } @@ -102,14 +102,14 @@ const postReviewNowController = async (req: Request, res: Response) => { res, returnCode.BAD_REQUEST, false, - "존재하지 않은 Review입니다." + "존재하지 않는 Review입니다." ); } else { response.dataResponse( res, returnCode.OK, true, - "독서단계이동 (중 -> 완료)", + "작성이 완료되었습니다.", resData ); } From da21b8f2832be397bd784bd3806beb5c8e67277b Mon Sep 17 00:00:00 2001 From: holmir97 Date: Fri, 14 Jan 2022 19:12:04 +0900 Subject: [PATCH 6/6] fix: typo --- src/service/review.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/service/review.ts b/src/service/review.ts index 7f79d57..41d87d6 100644 --- a/src/service/review.ts +++ b/src/service/review.ts @@ -118,7 +118,7 @@ const postReviewNowService = async ( }, }); - // 2. 존재하지 않은 review + // 2. 존재하지 않는 review if (!review) { return constant.WRONG_REQUEST_VALUE; }