📦 NEW: backend PUT /comments
This commit is contained in:
parent
6848c790ed
commit
ea5ee96845
@ -37,7 +37,7 @@ exports.postCommentsByFunctionId = async (req, res, next) => {
|
||||
}
|
||||
|
||||
exports.deleteCommentById = async (req, res, next) => {
|
||||
const { commentId } = req.query;
|
||||
const { commentId } = req.params;
|
||||
try {
|
||||
const comment = await Comments.findOne({ where: { userId: req.userId, id: parseInt(commentId) } });
|
||||
if (!comment) {
|
||||
@ -50,3 +50,23 @@ exports.deleteCommentById = async (req, res, next) => {
|
||||
return errorHandling(next, serverError);
|
||||
}
|
||||
}
|
||||
|
||||
exports.putCommentsById = async (req, res, next) => {
|
||||
const { commentId } = req.params;
|
||||
const { message } = req.body;
|
||||
if (!message) {
|
||||
return errorHandling(next, { message: "Vous ne pouvez pas poster de commentaire vide.", statusCode: 400 });
|
||||
}
|
||||
try {
|
||||
const comment = await Comments.findOne({ where: { userId: req.userId, id: parseInt(commentId) } });
|
||||
if (!comment) {
|
||||
return errorHandling(next, { message: "Le commentaire n'existe pas.", statusCode: 404 });
|
||||
}
|
||||
comment.message = message;
|
||||
await comment.save();
|
||||
return res.status(200).json({ message: "Le commentaire a bien été modifié." });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return errorHandling(next, serverError);
|
||||
}
|
||||
}
|
@ -106,67 +106,67 @@ AdminRouter.route('/functions/:id')
|
||||
preserveExtension: Number,
|
||||
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
|
||||
parseNested: true
|
||||
}),
|
||||
[
|
||||
body('title')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir un titre.")
|
||||
.isLength({ max: 100 })
|
||||
.withMessage("Le titre est trop long.")
|
||||
.custom(((title) => {
|
||||
if (title === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir un titre.");
|
||||
}),
|
||||
[
|
||||
body('title')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir un titre.")
|
||||
.isLength({ max: 100 })
|
||||
.withMessage("Le titre est trop long.")
|
||||
.custom(((title) => {
|
||||
if (title === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir un titre.");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('slug')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir un slug.")
|
||||
.isLength({ max: 100 })
|
||||
.withMessage("Le slug est trop long.")
|
||||
.custom(((slug) => {
|
||||
if (slug === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir un slug.");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('description')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir une description.")
|
||||
.isLength({ max: 255, min: 1 })
|
||||
.withMessage("La description est trop longue.")
|
||||
.custom(((description) => {
|
||||
if (description === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir une description.");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('categorieId')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir une catégorie.")
|
||||
.custom(async (categorieId) => {
|
||||
try {
|
||||
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } });
|
||||
if (!categorieFound) {
|
||||
return Promise.reject("La catégorie n'existe pas!");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('slug')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir un slug.")
|
||||
.isLength({ max: 100 })
|
||||
.withMessage("Le slug est trop long.")
|
||||
.custom(((slug) => {
|
||||
if (slug === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir un slug.");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('description')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir une description.")
|
||||
.isLength({ max: 255, min: 1 })
|
||||
.withMessage("La description est trop longue.")
|
||||
.custom(((description) => {
|
||||
if (description === 'undefined') {
|
||||
return Promise.reject("La fonction doit avoir une description.");
|
||||
}
|
||||
return true;
|
||||
})),
|
||||
body('categorieId')
|
||||
.not()
|
||||
.isEmpty()
|
||||
.withMessage("La fonction doit avoir une catégorie.")
|
||||
.custom(async (categorieId) => {
|
||||
try {
|
||||
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } });
|
||||
if (!categorieFound) {
|
||||
return Promise.reject("La catégorie n'existe pas!");
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
return true;
|
||||
}),
|
||||
body('type')
|
||||
.custom((type) => {
|
||||
if (!(type === 'article' || type === 'form' || type === 'page')) {
|
||||
return Promise.reject('Le type de la fonction peut être : article, form ou page.');
|
||||
}
|
||||
return true;
|
||||
})
|
||||
], adminController.putFunction)
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
return true;
|
||||
}),
|
||||
body('type')
|
||||
.custom((type) => {
|
||||
if (!(type === 'article' || type === 'form' || type === 'page')) {
|
||||
return Promise.reject('Le type de la fonction peut être : article, form ou page.');
|
||||
}
|
||||
return true;
|
||||
})
|
||||
], adminController.putFunction)
|
||||
|
||||
// Supprime une fonction avec son id
|
||||
.delete(adminController.deleteFunction);
|
||||
|
@ -4,7 +4,10 @@ const isAuth = require('../middlewares/isAuth');
|
||||
|
||||
const CommentsRouter = Router();
|
||||
|
||||
CommentsRouter.route('/')
|
||||
CommentsRouter.route('/:commentId')
|
||||
|
||||
// Modifier un commentaire
|
||||
.put(isAuth, commentsController.putCommentsById)
|
||||
|
||||
// Supprime un commentaire
|
||||
.delete(isAuth, commentsController.deleteCommentById);
|
||||
|
@ -14,7 +14,7 @@ const CommentCard = forwardRef((props, ref) => {
|
||||
props.manageComment.setLoadingComments(true);
|
||||
if (isAuth && user.token != undefined) {
|
||||
try {
|
||||
await api.delete(`/comments?commentId=${props.id}`, { headers: { 'Authorization': user.token } });
|
||||
await api.delete(`/comments/${props.id}`, { headers: { 'Authorization': user.token } });
|
||||
const newCommentsData = { ...props.manageComment.commentsData };
|
||||
const commentIndex = newCommentsData.rows.findIndex((value) => value.id === props.id);
|
||||
newCommentsData.rows.splice(commentIndex, 1);
|
||||
|
@ -4,9 +4,6 @@ import ReactMarkdown from 'react-markdown/with-html';
|
||||
import HeadTag from '../components/HeadTag';
|
||||
|
||||
const About = (props) => {
|
||||
|
||||
console.log(props);
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<HeadTag
|
||||
|
Reference in New Issue
Block a user