Ajout des fonctionnalités de gestion des projets : création, récupération et suppression de projets, avec gestion des dossiers associés.

This commit is contained in:
2025-01-14 15:18:06 +01:00
parent 8a84884081
commit ed2e2af5d0
4 changed files with 220 additions and 0 deletions

49
utils/fileUtils.js Normal file
View File

@@ -0,0 +1,49 @@
const fs = require('fs');
const path = require('path');
/**
* Crée un dossier pour un projet donné.
* @param {number} projectId - L'ID du projet.
* @param {string} baseDir - Le répertoire de base où le dossier du projet sera créé.
*/
function createProjectDirectory(projectId, baseDir) {
const projectDir = path.join(baseDir, `storage/${projectId}`);
if (!fs.existsSync(projectDir)) {
fs.mkdirSync(projectDir, { recursive: true });
}
}
/**
* Supprime le dossier d'un projet donné.
* @param {number} projectId - L'ID du projet.
* @param {string} baseDir - Le répertoire de base où le dossier du projet est situé.
*/
function deleteProjectDirectory(projectId, baseDir) {
const projectDir = path.join(baseDir, `storage/${projectId}`);
if (fs.existsSync(projectDir)) {
fs.rmdirSync(projectDir, { recursive: true });
}
}
/**
* Synchronise les fichiers d'un projet dans son dossier.
* @param {number} projectId - L'ID du projet.
* @param {string} sourceDir - Le répertoire source des fichiers à synchroniser.
* @param {string} baseDir - Le répertoire de base où le dossier du projet est situé.
*/
function syncProjectFiles(projectId, sourceDir, baseDir) {
const projectDir = path.join(baseDir, `storage/${projectId}`);
if (fs.existsSync(sourceDir)) {
fs.readdirSync(sourceDir).forEach(file => {
const srcFile = path.join(sourceDir, file);
const destFile = path.join(projectDir, file);
fs.copyFileSync(srcFile, destFile);
});
}
}
module.exports = {
createProjectDirectory,
deleteProjectDirectory,
syncProjectFiles
};