diff --git a/src/controller/user.ts b/src/controller/user.ts index caf4a8e..cff1022 100644 --- a/src/controller/user.ts +++ b/src/controller/user.ts @@ -22,13 +22,23 @@ import { resolveModelGetter } from "sequelize-typescript"; const getMyInfoController = async (req: Request, res: Response) => { try { const resData = await userService.getMyInfoService(req.body.userID.id); - response.dataResponse( - res, - returnCode.OK, - "마이페이지 조회 성공.", - true, - resData - ); + + if (resData === constant.NON_EXISTENT_USER) { + response.basicResponse( + res, + returnCode.BAD_REQUEST, + false, + "존재하지 않는 유저입니다." + ); + } else { + response.dataResponse( + res, + returnCode.OK, + "마이페이지 조회 성공.", + true, + resData + ); + } } catch (err) { slack.slackWebhook(req, err.message); console.error(err.message); @@ -69,13 +79,21 @@ const patchImgController = async (req: Request, res: Response) => { false, "잘못된 폼 데이터입니다." ); + } else if (resData === constant.NON_EXISTENT_USER) { + response.basicResponse( + res, + returnCode.BAD_REQUEST, + false, + "존재하지 않는 유저입니다." + ); } else { // 모두 성공시 - response.basicResponse( + response.dataResponse( res, returnCode.OK, + "프로필 이미지 변경 성공.", true, - "프로필 이미지 변경 완료." + resData ); } } catch (err) { diff --git a/src/library/constant.ts b/src/library/constant.ts index 30cf6c7..7b17bbe 100644 --- a/src/library/constant.ts +++ b/src/library/constant.ts @@ -11,4 +11,5 @@ export default { VALUE_ALREADY_EXIST: -9, // 이미 존재하는 값일 때 VALUE_ALREADY_DELETED: -10, // 이미 삭제된 값일 때 DB_NOT_FOUND: -11, // DB 응답값이 없을 때 + NON_EXISTENT_USER: -12, // 존재하지 않는 유저일 때 }; diff --git a/src/router/user.ts b/src/router/user.ts index 0e2d337..0f49b19 100644 --- a/src/router/user.ts +++ b/src/router/user.ts @@ -7,12 +7,12 @@ import authMiddleware from "../middleware/auth"; const router = express.Router(); +router.get("/myInfo", authMiddleware, userController.getMyInfoController); router.patch( "/img", upload.single("img"), authMiddleware, userController.patchImgController ); -router.get("/myInfo", authMiddleware, userController.getMyInfoController); module.exports = router; diff --git a/src/service/auth.ts b/src/service/auth.ts index e9a297e..9a7c2fb 100644 --- a/src/service/auth.ts +++ b/src/service/auth.ts @@ -82,6 +82,8 @@ const getNicknameService = async (nickname?: string) => { if (nicknameExist.length > 0) { return constant.NICKNAME_ALREADY_EXIST; } + + return constant.SUCCESS; }; /** @@ -173,7 +175,6 @@ const postSignupService = async ( isDeleted: false, }, }); - if (nicknameExist.length > 0) { return constant.NICKNAME_ALREADY_EXIST; } diff --git a/src/service/review.ts b/src/service/review.ts index 276faf7..a799bc9 100644 --- a/src/service/review.ts +++ b/src/service/review.ts @@ -219,7 +219,7 @@ const getReviewService = async (userId: number, reviewId: number) => { if (!userId || !reviewId) { return constant.NULL_VALUE; } - + console.log(userId, reviewId); const reviewToShow = await Review.findOne({ where: { id: reviewId, @@ -228,6 +228,7 @@ const getReviewService = async (userId: number, reviewId: number) => { }, }); + console.log(reviewToShow); // 존재하지 않는 리뷰일 때 if (!reviewToShow) { return constant.WRONG_REQUEST_VALUE; diff --git a/src/service/user.ts b/src/service/user.ts index 75120fb..4753f81 100644 --- a/src/service/user.ts +++ b/src/service/user.ts @@ -1,11 +1,7 @@ // sequelize import Sequelize, { Op } from "sequelize"; -// library -// import jwt from "jsonwebtoken"; -// import bcrypt from 'bcryptjs'; import constant from "../library/constant"; -// import index from "../config"; // model import { User, Review } from "../models"; @@ -14,22 +10,24 @@ import { User, Review } from "../models"; * @유저정보조회 * @route GET /user/myInfo * @access public - * @err + * @err 1. 존재하지 않는 유저 */ const getMyInfoService = async (userId: number) => { - // TODO: - user isDeleted 상태 확인 - const user = await User.findOne({ where: { id: userId, isDeleted: false } }); + const user = await User.findOne({ + where: { id: userId, isDeleted: false } + }); + + if (!user) { + return constant.NON_EXISTENT_USER; + } + const img = user.img; const nickname = user.nickname; const email = user.email; - - const review = await Review.findAll({ - where: { - userId, - isDeleted: false, - }, + const reviewCount = await Review.count({ + where: {userId, isDeleted: false} }); - const reviewCount = review.length; + return { img, nickname, email, reviewCount }; }; @@ -37,25 +35,26 @@ const getMyInfoService = async (userId: number) => { * @프로필이미지 수정 * @route PATCH /user/img * @access public - * @err 잘못된 폼데이터 + * @err 1. 잘못된 폼 데이터 + * 2. 존재하지 않는 유저 */ const patchImgService = async (userId: number, img: string) => { - // 폼데이터 맞는지 체크 -> 아니면 return statusCode.WRONG_IMG_FORM if (!img) { return constant.NULL_VALUE; - } else if (img === undefined) { + } else if (img === undefined) { return constant.WRONG_IMG_FORM; } - // TODO: - user isDeleted 상태 확인 - // userId에 맞는 user의 img 업로드 - await User.update( - { - img: img, - }, - { - where: { id: userId, isDeleted: false }, - } - ); + + const user = await User.findOne({ where: {id: userId, isDeleted: false}}); + + if (!user) { + return constant.NON_EXISTENT_USER; + } + + await user.update({img: img}); + await user.save(); + + return {img: user.img}; }; const userService = {