import express from 'express'; import serverError from '../utils/serverError.js'; const router = express.Router(); // Status du Projet : // 0 = En attente de capture // 1 = En cours de capture // 2 = Capture terminée const minInterval = 3; // Minutes const maxInterval = 60; // Minutes var captureProjectID = -1; var captureInterval = 0; // Minutes /** * @swagger * /procedure/start/: * post: * summary: Start the capture procedure * description: Starts the capture procedure with the given project ID and interval. * requestBody: * required: true * content: * application/json: * schema: * type: object * properties: * projectId: * type: integer * description: The ID of the project to start capturing. * interval: * type: integer * description: The interval in minutes for the capture. * responses: * 200: * description: Capture procedure started successfully. * content: * application/json: * schema: * type: object * properties: * message: * type: string * example: "Procédure de capture démarrée avec succès, projet ID: 1, interval: 10 minutes." * 500: * description: Internal server error. */ router.post('/procedure/start/', async (req, res) => { const { projectId, interval } = req.body; try { const result = startProcedure(projectId, interval); res.status(200).json(result); } catch (err) { serverError(res, err); } }); function startProcedure(projectId, interval) { console.log('Démarrage de la procédure de capture'); captureProjectID = projectId; if (interval < minInterval) { throw new Error('L\'intervalle de capture doit être supérieur ou égal à ' + minInterval + ' minutes.'); } if (interval > maxInterval) { throw new Error('L\'intervalle de capture doit être inférieur ou égal à ' + maxInterval + ' minutes.'); } captureInterval = interval; console.log('Procédure de capture démarrée avec succès, projet ID: ' + projectId + ', interval: ' + interval + ' minutes.'); return { message: 'Procédure de capture démarrée avec succès, projet ID: ' + projectId + ', interval: ' + interval + ' minutes.' }; } /** * @swagger * /procedure/stop/: * get: * summary: Stop the capture procedure * description: Stops the capture procedure. * responses: * 200: * description: Capture procedure stopped successfully. * content: * application/json: * schema: * type: object * properties: * message: * type: string * example: "Procédure de capture arrêtée avec succès." * 500: * description: Internal server error. */ router.get('/procedure/stop/', async (req, res) => { try { const result = stopProcedure(); res.status(200).json(result); } catch (err) { serverError(res, err); } }); function stopProcedure() { console.log('Arrêt de la procédure de capture'); return { message: 'Procédure de capture arrêtée avec succès.' }; } module.exports = router;