Ajout de journaux pour améliorer la traçabilité lors de la création et de la suppression des dossiers de projets

This commit is contained in:
2025-01-14 15:32:50 +01:00
parent d439ffed77
commit fbe6c90261

View File

@@ -6,49 +6,60 @@ const PROJECTS_DIR = path.join(__dirname, '../storage');
// Fonction pour créer un dossier pour un projet // Fonction pour créer un dossier pour un projet
function createProjectDirectory(projectId) { function createProjectDirectory(projectId) {
const projectPath = path.join(PROJECTS_DIR, projectId.toString()); const projectPath = path.join(PROJECTS_DIR, projectId.toString());
fs.mkdir(projectPath, { recursive: true }, (err) => { console.log(`Tentative de création du dossier pour le projet ${projectId} à ${projectPath}`);
if (err) { fs.mkdir(projectPath, { recursive: true }, (err) => {
console.error(`Erreur lors de la création du dossier du projet ${projectId}:`, err); if (err) {
return; console.error(`Erreur lors de la création du dossier du projet ${projectId}:`, err);
} return;
console.log(`Dossier créé pour le projet ${projectId} à ${projectPath}`); }
}); 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 // Fonction pour récupérer la liste des projets existants et générer leurs dossiers s'ils n'existent pas
function initializeProjectDirectories() { function initializeProjectDirectories() {
console.log('Initialisation des dossiers de projets existants...');
db.query('SELECT id FROM public.projects', (err, result) => { db.query('SELECT id FROM public.projects', (err, result) => {
if (err) { if (err) {
console.error('Erreur lors de la récupération des projets existants:', err); console.error('Erreur lors de la récupération des projets existants:', err);
return; return;
} }
console.log('Projets existants récupérés:', result.rows);
result.rows.forEach(row => { result.rows.forEach(row => {
const projectId = row.id; const projectId = row.id;
const projectPath = path.join(PROJECTS_DIR, projectId.toString()); const projectPath = path.join(PROJECTS_DIR, projectId.toString());
if (!fs.existsSync(projectPath)) { if (!fs.existsSync(projectPath)) {
console.log(`Le dossier pour le projet ${projectId} n'existe pas. Création en cours...`);
createProjectDirectory(projectId); 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 // Fonction pour supprimer les dossiers qui ne font pas partie de la base de données
function cleanUpProjectDirectories() { function cleanUpProjectDirectories() {
console.log('Nettoyage des dossiers de projets...');
fs.readdir(PROJECTS_DIR, (err, files) => { fs.readdir(PROJECTS_DIR, (err, files) => {
if (err) { if (err) {
console.error('Erreur lors de la lecture du dossier des projets:', err); console.error('Erreur lors de la lecture du dossier des projets:', err);
return; return;
} }
console.log('Dossiers de projets trouvés:', files);
db.query('SELECT id FROM public.projects', (err, result) => { db.query('SELECT id FROM public.projects', (err, result) => {
if (err) { if (err) {
console.error('Erreur lors de la récupération des projets existants:', err); console.error('Erreur lors de la récupération des projets existants:', err);
return; return;
} }
const projectIds = result.rows.map(row => row.id.toString()); const projectIds = result.rows.map(row => row.id.toString());
console.log('Projets dans la base de données:', projectIds);
files.forEach(file => { files.forEach(file => {
const projectPath = path.join(PROJECTS_DIR, file); const projectPath = path.join(PROJECTS_DIR, file);
if (fs.statSync(projectPath).isDirectory() && !projectIds.includes(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) => { fs.rmdir(projectPath, { recursive: true }, (err) => {
if (err) { if (err) {
console.error(`Erreur lors de la suppression du dossier du projet ${file}:`, 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 // Nettoyer les dossiers des projets qui ne sont pas dans la base de données
cleanUpProjectDirectories(); cleanUpProjectDirectories();
// Fonction pour surveiller les changements dans le dossier de projets // Fonction pour surveiller les changements dans le dossier de projets
function watchProjects() { function watchProjects() {
console.log('Surveillance des changements dans le dossier de projets...');
fs.watch(PROJECTS_DIR, (eventType, filename) => { fs.watch(PROJECTS_DIR, (eventType, filename) => {
console.log(`Changement détecté: ${eventType} sur ${filename}`);
if (eventType === 'rename') { if (eventType === 'rename') {
const projectId = path.basename(filename); const projectId = path.basename(filename);
if (fs.existsSync(path.join(PROJECTS_DIR, filename))) { if (fs.existsSync(path.join(PROJECTS_DIR, filename))) {