diff --git a/api.js b/api.js index 687d77a..40f5076 100644 --- a/api.js +++ b/api.js @@ -5,6 +5,7 @@ const projectRoutes = require('./routes/projectRoutes'); const measurementRoutes = require('./routes/measurementRoutes'); const videoRoutes = require('./routes/videoRoutes'); const imageRoutes = require('./routes/imageRoutes'); +const cameraRoutes = require('./routes/cameraRoutes'); const uploadRoutes = require('./routes/uploadRoutes'); const fileWatcher = require('./src/data/filewatcher.js'); const ffmpeg = require('./ffmpeg.js'); @@ -21,5 +22,6 @@ router.use('/', measurementRoutes); router.use('/', videoRoutes); router.use('/', imageRoutes); router.use('/', uploadRoutes); +router.use('/', cameraRoutes); module.exports = router; diff --git a/routes/cameraRoutes.js b/routes/cameraRoutes.js index 499c83d..b9de4a5 100644 --- a/routes/cameraRoutes.js +++ b/routes/cameraRoutes.js @@ -1,12 +1,106 @@ -import express from 'express'; -import serverError from '../utils/serverError.js'; +const express = require('express'); const router = express.Router(); +const path = require('path'); +const fs = require('fs'); +const dbTester = require('../test/tester'); +const db = require('../db'); +const serverError = require('../utils/serverError'); -// 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); + } +}); -export default router; +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.post('/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; diff --git a/routes/imageRoutes.js b/routes/imageRoutes.js index 23b829a..26b51e6 100644 --- a/routes/imageRoutes.js +++ b/routes/imageRoutes.js @@ -129,101 +129,4 @@ router.get('/images/:measurementId', (req, res) => { }); }); -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;