📦 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) => {
|
exports.deleteCommentById = async (req, res, next) => {
|
||||||
const { commentId } = req.query;
|
const { commentId } = req.params;
|
||||||
try {
|
try {
|
||||||
const comment = await Comments.findOne({ where: { userId: req.userId, id: parseInt(commentId) } });
|
const comment = await Comments.findOne({ where: { userId: req.userId, id: parseInt(commentId) } });
|
||||||
if (!comment) {
|
if (!comment) {
|
||||||
@ -49,4 +49,24 @@ exports.deleteCommentById = async (req, res, next) => {
|
|||||||
console.log(error);
|
console.log(error);
|
||||||
return errorHandling(next, serverError);
|
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,
|
preserveExtension: Number,
|
||||||
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
|
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
|
||||||
parseNested: true
|
parseNested: true
|
||||||
}),
|
}),
|
||||||
[
|
[
|
||||||
body('title')
|
body('title')
|
||||||
.not()
|
.not()
|
||||||
.isEmpty()
|
.isEmpty()
|
||||||
.withMessage("La fonction doit avoir un titre.")
|
.withMessage("La fonction doit avoir un titre.")
|
||||||
.isLength({ max: 100 })
|
.isLength({ max: 100 })
|
||||||
.withMessage("Le titre est trop long.")
|
.withMessage("Le titre est trop long.")
|
||||||
.custom(((title) => {
|
.custom(((title) => {
|
||||||
if (title === 'undefined') {
|
if (title === 'undefined') {
|
||||||
return Promise.reject("La fonction doit avoir un titre.");
|
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;
|
} catch (error) {
|
||||||
})),
|
console.log(error);
|
||||||
body('slug')
|
}
|
||||||
.not()
|
return true;
|
||||||
.isEmpty()
|
}),
|
||||||
.withMessage("La fonction doit avoir un slug.")
|
body('type')
|
||||||
.isLength({ max: 100 })
|
.custom((type) => {
|
||||||
.withMessage("Le slug est trop long.")
|
if (!(type === 'article' || type === 'form' || type === 'page')) {
|
||||||
.custom(((slug) => {
|
return Promise.reject('Le type de la fonction peut être : article, form ou page.');
|
||||||
if (slug === 'undefined') {
|
}
|
||||||
return Promise.reject("La fonction doit avoir un slug.");
|
return true;
|
||||||
}
|
})
|
||||||
return true;
|
], adminController.putFunction)
|
||||||
})),
|
|
||||||
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)
|
|
||||||
|
|
||||||
// Supprime une fonction avec son id
|
// Supprime une fonction avec son id
|
||||||
.delete(adminController.deleteFunction);
|
.delete(adminController.deleteFunction);
|
||||||
|
@ -4,7 +4,10 @@ const isAuth = require('../middlewares/isAuth');
|
|||||||
|
|
||||||
const CommentsRouter = Router();
|
const CommentsRouter = Router();
|
||||||
|
|
||||||
CommentsRouter.route('/')
|
CommentsRouter.route('/:commentId')
|
||||||
|
|
||||||
|
// Modifier un commentaire
|
||||||
|
.put(isAuth, commentsController.putCommentsById)
|
||||||
|
|
||||||
// Supprime un commentaire
|
// Supprime un commentaire
|
||||||
.delete(isAuth, commentsController.deleteCommentById);
|
.delete(isAuth, commentsController.deleteCommentById);
|
||||||
|
@ -14,7 +14,7 @@ const CommentCard = forwardRef((props, ref) => {
|
|||||||
props.manageComment.setLoadingComments(true);
|
props.manageComment.setLoadingComments(true);
|
||||||
if (isAuth && user.token != undefined) {
|
if (isAuth && user.token != undefined) {
|
||||||
try {
|
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 newCommentsData = { ...props.manageComment.commentsData };
|
||||||
const commentIndex = newCommentsData.rows.findIndex((value) => value.id === props.id);
|
const commentIndex = newCommentsData.rows.findIndex((value) => value.id === props.id);
|
||||||
newCommentsData.rows.splice(commentIndex, 1);
|
newCommentsData.rows.splice(commentIndex, 1);
|
||||||
|
@ -4,9 +4,6 @@ import ReactMarkdown from 'react-markdown/with-html';
|
|||||||
import HeadTag from '../components/HeadTag';
|
import HeadTag from '../components/HeadTag';
|
||||||
|
|
||||||
const About = (props) => {
|
const About = (props) => {
|
||||||
|
|
||||||
console.log(props);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<HeadTag
|
<HeadTag
|
||||||
|
Reference in New Issue
Block a user