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:
49
utils/fileUtils.js
Normal file
49
utils/fileUtils.js
Normal 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
|
||||
};
|
||||
Reference in New Issue
Block a user