Skip to content

Commit

Permalink
Merge pull request #425 from sparcs-kaist/#423-set-nickname-and-profi…
Browse files Browse the repository at this point in the history
…le-image-default

#423-set-nickname-and-profile-image-default
  • Loading branch information
TaehyeonPark authored Oct 26, 2023
2 parents 5197265 + c234823 commit 0a858ae
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/routes/docs/swaggerDocs.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const reportsSchema = require("./reportsSchema");
const reportsDocs = require("./reports");
const logininfoDocs = require("./logininfo");
const locationsDocs = require("./locations");
const usersDocs = require("./users");

const swaggerDocs = {
openapi: "3.0.3",
Expand All @@ -23,13 +24,18 @@ const swaggerDocs = {
name: "reports",
description: "사용자 신고 및 신고 기록 조회",
},
{
name: "users",
description: "유저 계정 정보 수정 및 조회",
},
],
consumes: ["application/json"],
produces: ["application/json"],
paths: {
...reportsDocs,
...logininfoDocs,
...locationsDocs,
...usersDocs,
},
components: {
schemas: {
Expand Down
68 changes: 68 additions & 0 deletions src/routes/docs/users.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
const tag = "users";
const apiPrefix = "/users";

const usersDocs = {};
usersDocs[`${apiPrefix}/resetNickname`] = {
get: {
tags: [tag],
summary: "유저 닉네임 기본값으로 재설정",
description: "유저의 별명을 기본값(랜덤한 닉네임)으로 초기화합니다",
responses: {
200: {
content: {
"text/html": {
example: "User/resetNickname : reset user nickname successful",
},
},
},
400: {
content: {
"text/html": {
example: "User/resetNickname : such user does not exist",
},
},
},
500: {
content: {
"text/html": {
example: "User/resetNickname : internal server error",
},
},
},
},
},
};

usersDocs[`${apiPrefix}/resetProfileImg`] = {
get: {
tags: [tag],
summary: "유저 프로필 사진 기본값으로 재설정",
description: "유저의 프로필 사진을 기본값(랜덤한 사진)으로 초기화합니다",
responses: {
200: {
content: {
"text/html": {
example:
"User/resetProfileImg : reset user profile image successful",
},
},
},
400: {
content: {
"text/html": {
example: "User/resetProfileImg : such user does not exist",
},
},
},
500: {
content: {
"text/html": {
example: "User/resetProfileImg : internal server error",
},
},
},
},
},
};

module.exports = usersDocs;
6 changes: 6 additions & 0 deletions src/routes/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ router.post(
userHandlers.editNicknameHandler
);

// 넥네임을 기본값으로 재설정합니다.
router.get("/resetNickname", userHandlers.resetNicknameHandler);

// 새 계좌번호를 받아 로그인된 유저의 계좌번호를 변경합니다.
router.post(
"/editAccount",
Expand All @@ -50,4 +53,7 @@ router.post(
// 프로필 이미지가 S3에 정상적으로 업로드가 되었는지 확인합니다.
router.get("/editProfileImg/done", userHandlers.editProfileImgDoneHandler);

// 프로필 이미지를 기본값으로 재설정합니다.
router.get("/resetProfileImg", userHandlers.resetProfileImgHandler);

module.exports = router;
43 changes: 43 additions & 0 deletions src/services/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ const aws = require("../modules/stores/aws");

// 이벤트 코드입니다.
const { contracts } = require("../lottery");
const {
generateNickname,
generateProfileImageUrl,
} = require("../modules/modifyProfile");

const agreeOnTermsOfServiceHandler = async (req, res) => {
try {
Expand Down Expand Up @@ -151,11 +155,50 @@ const editProfileImgDoneHandler = async (req, res) => {
}
};

const resetNicknameHandler = async (req, res) => {
try {
const result = await userModel.findOneAndUpdate(
{ id: req.userId },
{ nickname: generateNickname(req.body.id) },
{ new: true }
);
if (!result)
return res
.status(400)
.send("User/resetNickname : such user does not exist");
res.status(200).send("User/resetNickname : reset user nickname successful");
} catch (err) {
logger.error(err);
res.status(500).send("User/resetNickname : internal server error");
}
};

const resetProfileImgHandler = async (req, res) => {
try {
const result = await userModel.findOneAndUpdate(
{ id: req.userId },
{ profileImageUrl: generateProfileImageUrl() },
{ new: true }
);
if (!result)
return res
.status(400)
.send("User/resetProfileImg : such user does not exist");
res
.status(200)
.send("User/resetProfileImg : reset user profile image successful");
} catch (err) {
res.status(500).send("User/resetProfileImg : internal server error");
}
};

module.exports = {
agreeOnTermsOfServiceHandler,
getAgreeOnTermsOfServiceHandler,
editNicknameHandler,
editAccountHandler,
editProfileImgGetPUrlHandler,
editProfileImgDoneHandler,
resetNicknameHandler,
resetProfileImgHandler,
};

0 comments on commit 0a858ae

Please sign in to comment.