Refactor la suppression de projet pour utiliser async/await et améliorer la gestion des erreurs

This commit is contained in:
2025-01-14 17:27:50 +01:00
parent 2d9e0e34b1
commit d286998488
2 changed files with 25 additions and 19 deletions

View File

@@ -47,25 +47,23 @@ exports.getAllProjects = (req, res) => {
* @param {Object} req - La requête contenant l'ID du projet à supprimer.
* @param {Object} res - La réponse à renvoyer au client.
*/
exports.deleteProject = (req, res) => {
exports.deleteProject = async (req, res) => {
const projectId = req.params.id;
// Supprimer le projet de la base de données
const deleteProjectQuery = 'DELETE FROM public.projects WHERE id = $1';
db.query(deleteProjectQuery, [projectId])
.then(result => {
if (result.rowCount === 0) {
return res.status(404).json({ error: 'Aucun projet trouvé avec cet ID.' });
}
try {
// Supprimer le projet de la base de données
const deleteProjectQuery = 'DELETE FROM public.projects WHERE id = $1';
const result = await db.query(deleteProjectQuery, [projectId]);
// Supprimer le dossier du projet
return fileUtils.deleteProjectDirectory(projectId);
})
.then(() => {
res.status(200).json({ message: 'Projet supprimé avec succès' });
})
.catch(err => {
console.error('Erreur lors de la suppression du projet:', err);
res.status(500).json({ error: 'Erreur serveur' });
});
if (result.rowCount === 0) {
return res.status(404).json({ error: 'Aucun projet trouvé avec cet ID.' });
}
// Supprimer le dossier du projet
await fileUtils.deleteProjectDirectory(projectId);
res.status(200).json({ message: 'Projet supprimé avec succès' });
} catch (err) {
console.error('Erreur lors de la suppression du projet:', err);
res.status(500).json({ error: 'Erreur serveur' });
}
};