Skip to content

Commit

Permalink
Merge pull request #63 from Bletcher-Project/fix/users
Browse files Browse the repository at this point in the history
fix user router (delete profile img) #60
  • Loading branch information
kimdg1105 authored May 12, 2021
2 parents 59f46ff + 09e6c31 commit c06345f
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 39 deletions.
54 changes: 30 additions & 24 deletions src/api/routes/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,40 +142,46 @@ userRouter.patch(
password: Joi.string(),
email: Joi.string(),
introduce: Joi.string().allow('', null),
profile_img_delete: Joi.boolean(),
}),
}),
async (req: IJwtRequest, res: Response, next: NextFunction) => {
const userid: number = req.decoded?.id!;
let modifyDetail = { id: userid, ...req.body };
const existUser = await getUserByUserInfo({ id: modifyDetail.id });
try {
const dupEmail = await getUserByUserInfo({ email: modifyDetail.email });
const dupNickname = await getUserByUserInfo({ nickname: modifyDetail.nickname });
if (dupEmail) {
if (dupEmail.id !== userid) {
return res.status(409).json(response.response409(EXIST_EMAIL));
if (existUser) {
const dupEmail = await getUserByUserInfo({ email: modifyDetail.email });
const dupNickname = await getUserByUserInfo({ nickname: modifyDetail.nickname });
if (dupEmail) {
if (dupEmail.id !== userid) {
return res.status(409).json(response.response409(EXIST_EMAIL));
}
}
}
if (dupNickname) {
if (dupNickname.id !== userid) {
return res.status(409).json(response.response409(EXIST_ID));
if (dupNickname) {
if (dupNickname.id !== userid) {
return res.status(409).json(response.response409(EXIST_ID));
}
}
}
if (req.file) {
const imageDetail = {
name: req.file.filename,
type: req.file.mimetype,
path: req.file.path,
};
if (existUser?.profile_image) {
await deleteImage(existUser?.profile_image);
if (req.file) {
const imageDetail = {
name: req.file.filename,
type: req.file.mimetype,
path: req.file.path,
};
if (existUser.profile_image) {
await deleteImage(existUser?.profile_image);
}
const newImage: Image | null = await postImage(imageDetail as IImageDetail);
modifyDetail = { ...modifyDetail, profile_image: newImage?.id };
}
if (req.body.profile_img_delete && existUser.profile_image) {
await deleteImage(existUser.profile_image);
}
const user = await modifyUser(modifyDetail as IUserModify);
if (user) {
return res.status(200).json(response.response200(MODIFY_USER_SUCCESS, user));
}
const newImage: Image | null = await postImage(imageDetail as IImageDetail);
modifyDetail = { ...modifyDetail, profile_image: newImage?.id };
}
const user = await modifyUser(modifyDetail as IUserModify);
if (user) {
return res.status(200).json(response.response200(MODIFY_USER_SUCCESS, user));
}
return res.status(400).json(response.response400(MODIFY_USER_FAIL));
} catch (err) {
Expand Down
15 changes: 0 additions & 15 deletions src/services/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,6 @@ export const getUserByUserInfo = async (userInfo: IUserInfo): Promise<User | nul
return user;
};

export const getUsernameById = async (id: number): Promise<User | null> => {
const nickname = await User.findOne({
where: { id },
raw: true,
attributes: ['nickname'],
include: [
{
model: Image,
attributes: ['id', 'path'],
},
],
});
return nickname;
};

export const deleteUser = async (id: number): Promise<number> => {
const user = await User.destroy({
where: { id },
Expand Down

0 comments on commit c06345f

Please sign in to comment.