back: DELETE /admin/functions/:id

This commit is contained in:
Divlo 2020-03-25 23:30:33 +01:00
parent cec6881308
commit 49da9d5d48
3 changed files with 25 additions and 3 deletions

1
api/.gitignore vendored
View File

@ -19,6 +19,7 @@
.env.test.local
.env.production.local
/temp
/assets/images/
npm-debug.log*
yarn-debug.log*

View File

@ -1,4 +1,5 @@
const path = require('path');
const fs = require('fs');
const { validationResult } = require('express-validator');
const errorHandling = require('../assets/utils/errorHandling');
const { serverError } = require('../assets/config/errors');
@ -31,3 +32,22 @@ exports.postFunction = (req, res, next) => {
}
});
}
exports.deleteFunction = async (req, res, next) => {
const { id } = req.params;
try {
const result = await Functions.findOne({ where: { id } });
if (!result) {
return errorHandling(next, { message: "La fonction n'existe pas.", statusCode: 404 });
}
if (result.image !== "/images/functions/default.png") {
const filePath = path.join(__dirname, '..', 'assets', result.image);
fs.unlinkSync(filePath); // supprime le fichier
}
await Functions.destroy({ where: { id } });
res.status(200).json({ message: "La fonction a été correctement supprimé!"});
} catch (error) {
console.log(error);
errorHandling(next, serverError);
}
}

View File

@ -10,9 +10,7 @@ const Categories = require('../models/categories');
const AdminRouter = Router();
// Permet de créé une fonction
AdminRouter.post('/functions',
isAuth,
isAdmin,
AdminRouter.post('/functions', isAuth, isAdmin,
fileUpload({
useTempFiles: true,
safeFileNames: true,
@ -76,4 +74,7 @@ AdminRouter.post('/functions',
adminController.postFunction
);
// Supprime une fonction avec son id
AdminRouter.delete('/functions/:id', isAuth, isAdmin, adminController.deleteFunction);
module.exports = AdminRouter;