Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
203 changes: 110 additions & 93 deletions src/controllers/mypage.controller.js
Original file line number Diff line number Diff line change
@@ -1,130 +1,147 @@
const MyPageService = require('../services/mypage.service');
const MyPageRepository = require('../repositories/mypage.repository');
const MyPageService = require("../services/mypage.service");
const MyPageRepository = require("../repositories/mypage.repository");
const imageUploader = require("../middlewares/imageUploader.js");
const profileImageUploader = imageUploader("profile-image");

// 유저 정보 조회
const getMyPage = async (req, res) => {
try{
const userId = req.userId;
const user = await MyPageService.findUserById(userId);
res.status(200).json({
resultType: 'success',
message: '유저 정보 조회 성공',
data: user
});
} catch(error) {
res.status(500).json({message: error.message});
}
try {
const userId = req.userId;
const user = await MyPageService.findUserById(userId);
res.status(200).json({
resultType: "success",
message: "유저 정보 조회 성공",
data: user,
});
} catch (error) {
res.status(500).json({ message: error.message });
}
};

// 유저 정보 수정
const updateMyPage = async (req, res) => {
try{
const userId = req.userId;
const { nickname, name, birth, phonenum, email } = req.body;
const user = await MyPageService.updateUserById(userId, { nickname, name, birth, phonenum, email });
res.status(200).json({
resultType: 'success',
message: '유저 정보 수정 성공',
data: user
});
} catch(error) {
res.status(500).json({message: error.message});
try {
const userId = req.userId;
let { nickname, name, birth, phonenum, email } = req.body;

// birth 값이 존재하고 문자열 형식이면 변환
if (birth && typeof birth === "string") {
birth = new Date(`${birth}T00:00:00.000Z`); // 날짜 변환
if (isNaN(birth.getTime())) {
throw new Error("유효하지 않은 날짜 형식입니다.");
}
}

const user = await MyPageService.updateUserById(userId, {
nickname,
name,
birth,
phonenum,
email,
});
res.status(200).json({
resultType: "success",
message: "유저 정보 수정 성공",
data: user,
});
} catch (error) {
res.status(500).json({ message: error.message });
}
};

// 보관 글 목록 조회
const getStoragedPost = async (req, res) => {
try{
const userId = req.userId;
const posts = await MyPageService.findStoragedPost(userId);
res.status(200).json({
resultType: 'success',
message: '보관 글 목록 조회 성공',
data: posts
});
} catch(error) {
res.status(500).json({message: error.message});
}
try {
const userId = req.userId;
const posts = await MyPageService.findStoragedPost(userId);
res.status(200).json({
resultType: "success",
message: "보관 글 목록 조회 성공",
data: posts,
});
} catch (error) {
res.status(500).json({ message: error.message });
}
};

// 보관 글 상태 수정(보관->전체공개)
const updateStoragePost = async (req, res) => {
try{
const postId = req.params.postId;
const post = await MyPageService.updateStoragePost(postId);
res.status(200).json({
resultType: 'success',
message: '보관 글 상태 수정 성공',
data: post
});
} catch(error) {
res.status(500).json({message: error.message});
}
try {
const postId = req.params.postId;
const post = await MyPageService.updateStoragePost(postId);
res.status(200).json({
resultType: "success",
message: "보관 글 상태 수정 성공",
data: post,
});
} catch (error) {
res.status(500).json({ message: error.message });
}
};

// 프로필 사진 등록/수정
// 프로필 사진 등록/수정
const uploadUserImage = async (req, res) => {
const userId = req.userId;
const userId = req.userId;

profileImageUploader.single("images")(req, res, (err) => {
if (err) {
return res.status(500).json({ message: "파일 업로드 중 오류 발생", error: err.message });
}
profileImageUploader.single("images")(req, res, (err) => {
if (err) {
return res
.status(500)
.json({ message: "파일 업로드 중 오류 발생", error: err.message });
}

if (!req.file) {
return res.status(400).json({ message: "파일이 없어요.." });
}
if (!req.file) {
return res.status(400).json({ message: "파일이 없어요.." });
}

const fileUrl = req.file.location;
MyPageService.registerProfileImage(userId, fileUrl);

const fileUrl = req.file.location;
MyPageService.registerProfileImage(userId, fileUrl);

return res.status(200).json({ message: "파일 업로드 성공", fileUrl });
})
return res.status(200).json({ message: "파일 업로드 성공", fileUrl });
});
};

// 프로필 사진 삭제
const deleteUserImage = async (req, res) => {
try {
const userId = req.userId;
const result = await MyPageService.deleteProfileImage(userId);

if (result.message === "등록된 이미지가 없습니다.") {
return res.status(400).json(result);
}
try {
const userId = req.userId;
const result = await MyPageService.deleteProfileImage(userId);

return res.status(200).json(result);
} catch (error) {
res.status(500).json({ message: "서버 오류", error: error.message });
if (result.message === "등록된 이미지가 없습니다.") {
return res.status(400).json(result);
}

return res.status(200).json(result);
} catch (error) {
res.status(500).json({ message: "서버 오류", error: error.message });
}
};

// 프로필 사진 조회
const getUserImage = async (req, res) => {
try {
const userId = req.userId;
const image = await MyPageRepository.findPostImages(userId);
console.log(`image: `, image);

if (!image) {
return res.status(400).json({ message: "등록된 배경사진이 없습니다." });
}

return res.status(200).json({
data: image.file_name
});
} catch (error) {
res.status(500).json({ message: "서버 오류", error: error.message });
try {
const userId = req.userId;
const image = await MyPageRepository.findPostImages(userId);
console.log(`image: `, image);

if (!image) {
return res.status(400).json({ message: "등록된 배경사진이 없습니다." });
}

return res.status(200).json({
data: image.file_name,
});
} catch (error) {
res.status(500).json({ message: "서버 오류", error: error.message });
}
};

module.exports = {
getMyPage,
updateMyPage,
getStoragedPost,
updateStoragePost,
uploadUserImage,
deleteUserImage,
getUserImage,
};
module.exports = {
getMyPage,
updateMyPage,
getStoragedPost,
updateStoragePost,
uploadUserImage,
deleteUserImage,
getUserImage,
};
Loading