Files
timelapse-backend/models/projectModel.js

41 lines
1.6 KiB
JavaScript

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);
}
}
};