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

41
models/projectModel.js Normal file
View File

@@ -0,0 +1,41 @@
module.exports = {
createProject: async (db, projectData) => {
const query = 'INSERT INTO public.projects (name, description, start_date, status) VALUES ($1, $2, $3, $4) RETURNING id';
const values = [projectData.name, projectData.description, projectData.start_date, projectData.status];
try {
const result = await db.query(query, values);
return result.rows[0].id;
} catch (error) {
throw new Error('Erreur lors de la création du projet: ' + error.message);
}
},
getProjectById: async (db, projectId) => {
const query = 'SELECT * FROM public.projects WHERE id = $1';
try {
const result = await db.query(query, [projectId]);
return result.rows[0];
} catch (error) {
throw new Error('Erreur lors de la récupération du projet: ' + error.message);
}
},
updateProject: async (db, projectId, projectData) => {
const query = 'UPDATE public.projects SET name = $1, description = $2, start_date = $3, status = $4 WHERE id = $5';
const values = [projectData.name, projectData.description, projectData.start_date, projectData.status, projectId];
try {
await db.query(query, values);
} catch (error) {
throw new Error('Erreur lors de la mise à jour du projet: ' + error.message);
}
},
deleteProject: async (db, projectId) => {
const query = 'DELETE FROM public.projects WHERE id = $1';
try {
await db.query(query, [projectId]);
} catch (error) {
throw new Error('Erreur lors de la suppression du projet: ' + error.message);
}
}
};