const errorHandling = require('../assets/utils/errorHandling') const Comments = require('../models/comments') const Users = require('../models/users') const Functions = require('../models/functions') const getPagesHelper = require('../assets/utils/getPagesHelper') const { serverError } = require('../assets/config/errors') exports.getCommentsByFunctionId = async (req, res, next) => { const { functionId } = req.params const options = { where: { functionId }, include: [ { model: Users, attributes: ['name', 'logo'] } ], order: [['createdAt', 'DESC']] } return await getPagesHelper({ req, res, next }, Comments, options) } exports.postCommentsByFunctionId = async (req, res, next) => { const { functionId } = req.params const { message } = req.body try { const resultFunction = await Functions.findOne({ where: { id: functionId } }) if (!resultFunction) { return errorHandling(next, { message: "La fonction n'existe pas.", statusCode: 404 }) } if (!message) { return errorHandling(next, { message: 'Vous ne pouvez pas poster de commentaire vide.', statusCode: 400 }) } const comment = await Comments.create({ message, userId: req.userId, functionId }) return res.status(201).json(comment) } catch (error) { console.log(error) return errorHandling(next, serverError) } } exports.deleteCommentById = async (req, res, next) => { const { commentId } = req.params 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 }) } await comment.destroy() return res.status(200).json({ message: 'Le commentaire a bien été supprimé.' }) } catch (error) { console.log(error) 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) } }