From fbe6c90261003c3ec538b938e321686ec9c9e00c Mon Sep 17 00:00:00 2001 From: Kerboul Date: Tue, 14 Jan 2025 15:32:50 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20journaux=20pour=20am=C3=A9liorer?= =?UTF-8?q?=20la=20tra=C3=A7abilit=C3=A9=20lors=20de=20la=20cr=C3=A9ation?= =?UTF-8?q?=20et=20de=20la=20suppression=20des=20dossiers=20de=20projets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file_watcher.js | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/file_watcher.js b/file_watcher.js index 0a570b0..7727590 100644 --- a/file_watcher.js +++ b/file_watcher.js @@ -6,49 +6,60 @@ const PROJECTS_DIR = path.join(__dirname, '../storage'); // Fonction pour créer un dossier pour un projet function createProjectDirectory(projectId) { - const projectPath = path.join(PROJECTS_DIR, projectId.toString()); - - fs.mkdir(projectPath, { recursive: true }, (err) => { - if (err) { - console.error(`Erreur lors de la création du dossier du projet ${projectId}:`, err); - return; - } - console.log(`Dossier créé pour le projet ${projectId} à ${projectPath}`); - }); + const projectPath = path.join(PROJECTS_DIR, projectId.toString()); + + console.log(`Tentative de création du dossier pour le projet ${projectId} à ${projectPath}`); + fs.mkdir(projectPath, { recursive: true }, (err) => { + if (err) { + console.error(`Erreur lors de la création du dossier du projet ${projectId}:`, err); + return; + } + console.log(`Dossier créé pour le projet ${projectId} à ${projectPath}`); + }); } // Fonction pour récupérer la liste des projets existants et générer leurs dossiers s'ils n'existent pas function initializeProjectDirectories() { + console.log('Initialisation des dossiers de projets existants...'); db.query('SELECT id FROM public.projects', (err, result) => { if (err) { console.error('Erreur lors de la récupération des projets existants:', err); return; } + console.log('Projets existants récupérés:', result.rows); result.rows.forEach(row => { const projectId = row.id; const projectPath = path.join(PROJECTS_DIR, projectId.toString()); if (!fs.existsSync(projectPath)) { + console.log(`Le dossier pour le projet ${projectId} n'existe pas. Création en cours...`); createProjectDirectory(projectId); + } else { + console.log(`Le dossier pour le projet ${projectId} existe déjà.`); } }); }); } + // Fonction pour supprimer les dossiers qui ne font pas partie de la base de données function cleanUpProjectDirectories() { + console.log('Nettoyage des dossiers de projets...'); fs.readdir(PROJECTS_DIR, (err, files) => { if (err) { console.error('Erreur lors de la lecture du dossier des projets:', err); return; } + console.log('Dossiers de projets trouvés:', files); db.query('SELECT id FROM public.projects', (err, result) => { if (err) { console.error('Erreur lors de la récupération des projets existants:', err); return; } const projectIds = result.rows.map(row => row.id.toString()); + console.log('Projets dans la base de données:', projectIds); files.forEach(file => { const projectPath = path.join(PROJECTS_DIR, file); if (fs.statSync(projectPath).isDirectory() && !projectIds.includes(file)) { + console.log(`Le dossier ${file} ne correspond à aucun projet dans la base de données. Suppression en cours...`); fs.rmdir(projectPath, { recursive: true }, (err) => { if (err) { console.error(`Erreur lors de la suppression du dossier du projet ${file}:`, err); @@ -64,9 +75,12 @@ function cleanUpProjectDirectories() { // Nettoyer les dossiers des projets qui ne sont pas dans la base de données cleanUpProjectDirectories(); + // Fonction pour surveiller les changements dans le dossier de projets function watchProjects() { + console.log('Surveillance des changements dans le dossier de projets...'); fs.watch(PROJECTS_DIR, (eventType, filename) => { + console.log(`Changement détecté: ${eventType} sur ${filename}`); if (eventType === 'rename') { const projectId = path.basename(filename); if (fs.existsSync(path.join(PROJECTS_DIR, filename))) {