Mise à jour de routes et models
This commit is contained in:
+54
-48
@@ -3,72 +3,78 @@ const asyncHandler = require("../middlewares/asyncHandler");
|
||||
const ErrorResponse = require("../util/errorResponse");
|
||||
|
||||
module.exports.getProfile = asyncHandler(async (req, res, next) => {
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const user = await User.findOne({ where: { username: username } });
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const user = await User.findOne({ where: { username: username } });
|
||||
|
||||
if (!user) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
if (!user) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
|
||||
let isFollowing = false;
|
||||
let isFollowing = false;
|
||||
|
||||
if (loggedUser) {
|
||||
const followers = await user.getFollowers();
|
||||
isFollowing = followers.some((user) => user.id === loggedUser.id);
|
||||
}
|
||||
if (loggedUser) {
|
||||
const followers = await user.getFollowers();
|
||||
isFollowing = followers.some((user) => user.id === loggedUser.id);
|
||||
}
|
||||
|
||||
const profile = {
|
||||
username,
|
||||
bio: user.bio,
|
||||
image: user.image,
|
||||
following: isFollowing,
|
||||
};
|
||||
res.status(200).json({ profile });
|
||||
const profile = {
|
||||
username,
|
||||
firstname: user.firstname,
|
||||
lastname: user.lastname,
|
||||
bio: user.bio,
|
||||
image: user.image,
|
||||
following: isFollowing,
|
||||
};
|
||||
res.status(200).json({ profile });
|
||||
});
|
||||
|
||||
module.exports.followUser = asyncHandler(async (req, res, next) => {
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const userToFollow = await User.findOne({ where: { username: username } });
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const userToFollow = await User.findOne({ where: { username: username } });
|
||||
|
||||
if (!userToFollow) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
if (!userToFollow) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
|
||||
const currentUser = await User.findByPk(loggedUser.id);
|
||||
const currentUser = await User.findByPk(loggedUser.id);
|
||||
|
||||
await userToFollow.addFollower(currentUser);
|
||||
await userToFollow.addFollower(currentUser);
|
||||
|
||||
const profile = {
|
||||
username: username,
|
||||
bio: userToFollow.dataValues.bio,
|
||||
image: userToFollow.dataValues.image,
|
||||
following: true,
|
||||
};
|
||||
const profile = {
|
||||
username: username,
|
||||
firstname: userToFollow.dataValues.firstname,
|
||||
lastname: userToFollow.dataValues.lastname,
|
||||
bio: userToFollow.dataValues.bio,
|
||||
image: userToFollow.dataValues.image,
|
||||
following: true,
|
||||
};
|
||||
|
||||
res.status(200).json({ profile });
|
||||
res.status(200).json({ profile });
|
||||
});
|
||||
|
||||
module.exports.unfollowUser = asyncHandler(async (req, res, next) => {
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const userToUnfollow = await User.findOne({ where: { username: username } });
|
||||
const username = req.params.username;
|
||||
const { loggedUser } = req;
|
||||
const userToUnfollow = await User.findOne({ where: { username: username } });
|
||||
|
||||
if (!userToUnfollow) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
if (!userToUnfollow) {
|
||||
return next(new ErrorResponse(`User not found`, 404));
|
||||
}
|
||||
|
||||
const currentUser = await User.findByPk(loggedUser.id);
|
||||
const currentUser = await User.findByPk(loggedUser.id);
|
||||
|
||||
await userToUnfollow.removeFollower(currentUser);
|
||||
await userToUnfollow.removeFollower(currentUser);
|
||||
|
||||
const profile = {
|
||||
username: username,
|
||||
bio: userToUnfollow.dataValues.bio,
|
||||
image: userToUnfollow.dataValues.image,
|
||||
following: false,
|
||||
};
|
||||
const profile = {
|
||||
username: username,
|
||||
firstname: userToUnfollow.dataValues.firstname,
|
||||
lastname: userToUnfollow.dataValues.lastname,
|
||||
bio: userToUnfollow.dataValues.bio,
|
||||
image: userToUnfollow.dataValues.image,
|
||||
following: false,
|
||||
};
|
||||
|
||||
res.status(200).json({ profile });
|
||||
res.status(200).json({ profile });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user