Refactor la suppression de projet pour utiliser async/await et améliorer la gestion des erreurs
This commit is contained in:
@@ -47,25 +47,23 @@ exports.getAllProjects = (req, res) => {
|
|||||||
* @param {Object} req - La requête contenant l'ID du projet à supprimer.
|
* @param {Object} req - La requête contenant l'ID du projet à supprimer.
|
||||||
* @param {Object} res - La réponse à renvoyer au client.
|
* @param {Object} res - La réponse à renvoyer au client.
|
||||||
*/
|
*/
|
||||||
exports.deleteProject = (req, res) => {
|
exports.deleteProject = async (req, res) => {
|
||||||
const projectId = req.params.id;
|
const projectId = req.params.id;
|
||||||
|
|
||||||
|
try {
|
||||||
// Supprimer le projet de la base de données
|
// Supprimer le projet de la base de données
|
||||||
const deleteProjectQuery = 'DELETE FROM public.projects WHERE id = $1';
|
const deleteProjectQuery = 'DELETE FROM public.projects WHERE id = $1';
|
||||||
db.query(deleteProjectQuery, [projectId])
|
const result = await db.query(deleteProjectQuery, [projectId]);
|
||||||
.then(result => {
|
|
||||||
if (result.rowCount === 0) {
|
if (result.rowCount === 0) {
|
||||||
return res.status(404).json({ error: 'Aucun projet trouvé avec cet ID.' });
|
return res.status(404).json({ error: 'Aucun projet trouvé avec cet ID.' });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Supprimer le dossier du projet
|
// Supprimer le dossier du projet
|
||||||
return fileUtils.deleteProjectDirectory(projectId);
|
await fileUtils.deleteProjectDirectory(projectId);
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
res.status(200).json({ message: 'Projet supprimé avec succès' });
|
res.status(200).json({ message: 'Projet supprimé avec succès' });
|
||||||
})
|
} catch (err) {
|
||||||
.catch(err => {
|
|
||||||
console.error('Erreur lors de la suppression du projet:', err);
|
console.error('Erreur lors de la suppression du projet:', err);
|
||||||
res.status(500).json({ error: 'Erreur serveur' });
|
res.status(500).json({ error: 'Erreur serveur' });
|
||||||
});
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,7 +25,15 @@ function createProjectDirectory(projectId) {
|
|||||||
function deleteProjectDirectory(projectId) {
|
function deleteProjectDirectory(projectId) {
|
||||||
const projectDir = path.join(__dirname, `storage/${projectId}`);
|
const projectDir = path.join(__dirname, `storage/${projectId}`);
|
||||||
if (fs.existsSync(projectDir)) {
|
if (fs.existsSync(projectDir)) {
|
||||||
fs.rmdirSync(projectDir, { recursive: true });
|
fs.readdirSync(projectDir).forEach(file => {
|
||||||
|
const filePath = path.join(projectDir, file);
|
||||||
|
if (fs.lstatSync(filePath).isDirectory()) {
|
||||||
|
fs.rmdirSync(filePath, { recursive: true });
|
||||||
|
} else {
|
||||||
|
fs.unlinkSync(filePath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fs.rmdirSync(projectDir);
|
||||||
console.log(`Directory deleted: ${projectDir}`);
|
console.log(`Directory deleted: ${projectDir}`);
|
||||||
} else {
|
} else {
|
||||||
console.log(`Directory does not exist: ${projectDir}`);
|
console.log(`Directory does not exist: ${projectDir}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user