Suppression des modèles et contrôleurs de projet, refonte de la création et suppression de projet dans les routes API

This commit is contained in:
2025-01-14 17:45:05 +01:00
parent b4ddaf102e
commit efc469597a
5 changed files with 53 additions and 280 deletions

View File

@@ -1,5 +1,6 @@
const fs = require('fs');
const path = require('path');
const PROJECTS_DIR = path.join(__dirname, '../storage');
/**
* Crée un dossier pour un projet donné.
@@ -7,7 +8,7 @@ const path = require('path');
* @param {string} baseDir - Le répertoire de base où le dossier du projet sera créé.
*/
function createProjectDirectory(projectId) {
const projectDir = path.join(__dirname, `storage/${projectId}`);
const projectDir = path.join(PROJECTS_DIR, `${projectId}`);
console.log(`Creating directory: ${projectDir}`);
if (!fs.existsSync(projectDir)) {
fs.mkdirSync(projectDir, { recursive: true });
@@ -20,48 +21,18 @@ function createProjectDirectory(projectId) {
/**
* 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) {
const projectDir = path.join(__dirname, `storage/${projectId}`);
const projectDir = path.join(PROJECTS_DIR, `${projectId}`);
if (fs.existsSync(projectDir)) {
fs.readdirSync(projectDir).forEach(file => {
const filePath = path.join(projectDir, file);
if (fs.lstatSync(filePath).isDirectory()) {
fs.rmdirSync(filePath, { recursive: true });
} else {
fs.unlinkSync(filePath);
}
});
fs.rmdirSync(projectDir);
fs.rmSync(projectDir, { recursive: true, force: true });
console.log(`Directory deleted: ${projectDir}`);
} else {
console.log(`Directory does not exist: ${projectDir}`);
}
}
/**
* 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) {
const projectDir = path.join(__dirname, `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);
console.log(`File copied from ${srcFile} to ${destFile}`);
});
} else {
console.log(`Source directory does not exist: ${sourceDir}`);
}
}
module.exports = {
createProjectDirectory,
deleteProjectDirectory,
syncProjectFiles
deleteProjectDirectory
};