Déplacer la logique de capture de cameraRoutes.js vers imageRoutes.js et ajouter les routes pour démarrer et arrêter la procédure de capture
This commit is contained in:
2
api.js
2
api.js
@@ -5,6 +5,7 @@ const projectRoutes = require('./routes/projectRoutes');
|
|||||||
const measurementRoutes = require('./routes/measurementRoutes');
|
const measurementRoutes = require('./routes/measurementRoutes');
|
||||||
const videoRoutes = require('./routes/videoRoutes');
|
const videoRoutes = require('./routes/videoRoutes');
|
||||||
const imageRoutes = require('./routes/imageRoutes');
|
const imageRoutes = require('./routes/imageRoutes');
|
||||||
|
const cameraRoutes = require('./routes/cameraRoutes');
|
||||||
const uploadRoutes = require('./routes/uploadRoutes');
|
const uploadRoutes = require('./routes/uploadRoutes');
|
||||||
const fileWatcher = require('./src/data/filewatcher.js');
|
const fileWatcher = require('./src/data/filewatcher.js');
|
||||||
const ffmpeg = require('./ffmpeg.js');
|
const ffmpeg = require('./ffmpeg.js');
|
||||||
@@ -21,5 +22,6 @@ router.use('/', measurementRoutes);
|
|||||||
router.use('/', videoRoutes);
|
router.use('/', videoRoutes);
|
||||||
router.use('/', imageRoutes);
|
router.use('/', imageRoutes);
|
||||||
router.use('/', uploadRoutes);
|
router.use('/', uploadRoutes);
|
||||||
|
router.use('/', cameraRoutes);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
@@ -1,12 +1,106 @@
|
|||||||
import express from 'express';
|
const express = require('express');
|
||||||
import serverError from '../utils/serverError.js';
|
|
||||||
const router = express.Router();
|
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 :
|
const minInterval = 3; // Minutes
|
||||||
// 0 = En attente de capture
|
const maxInterval = 60; // Minutes
|
||||||
// 1 = En cours de capture
|
|
||||||
// 2 = Capture terminée
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
|||||||
@@ -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;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user