feat(database): Implement DatabaseManager for managing database structure and initialization
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 1m51s

feat(routes): Add camera, image, measurement, project, and video routes with Swagger documentation

feat(services): Create storageService and videoService for file management and video processing

fix(errorHandler): Enhance error handling with standardized responses and database operation wrappers
This commit is contained in:
2025-04-27 01:02:33 +02:00
parent 792bdca965
commit 4513af3aa0
30 changed files with 3006 additions and 763 deletions

142
src/routes/projectRoutes.js Normal file
View File

@@ -0,0 +1,142 @@
// src/routes/projectRoutes.js
const express = require('express');
const router = express.Router();
const ProjectController = require('../controllers/projectController');
/**
* @swagger
* /projects:
* get:
* summary: Récupère tous les projets
* responses:
* 200:
* description: Liste de tous les projets
* 500:
* description: Erreur serveur
*/
router.get('/projects', ProjectController.getAllProjects);
/**
* @swagger
* /projects/{id}:
* get:
* summary: Récupère un projet par ID
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* description: ID du projet
* responses:
* 200:
* description: Détails du projet
* 400:
* description: ID de projet invalide
* 404:
* description: Projet non trouvé
* 500:
* description: Erreur serveur
*/
router.get('/projects/:id', ProjectController.getProjectById);
/**
* @swagger
* /projects/{id}/videos:
* get:
* summary: Récupère les vidéos d'un projet
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* description: ID du projet
* responses:
* 200:
* description: Liste des vidéos du projet
* 400:
* description: ID de projet invalide
* 404:
* description: Aucune vidéo trouvée
* 500:
* description: Erreur serveur
*/
router.get('/projects/:id/videos', ProjectController.getProjectVideos);
/**
* @swagger
* /projects/{id}/measurements:
* get:
* summary: Récupère les mesures d'un projet
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* description: ID du projet
* responses:
* 200:
* description: Liste des mesures du projet
* 400:
* description: ID de projet invalide
* 404:
* description: Aucune mesure trouvée
* 500:
* description: Erreur serveur
*/
router.get('/projects/:id/measurements', ProjectController.getProjectMeasurements);
/**
* @swagger
* /projects:
* post:
* summary: Crée un nouveau projet
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* name:
* type: string
* description:
* type: string
* required:
* - name
* - description
* responses:
* 201:
* description: Projet créé avec succès
* 400:
* description: Paramètres invalides
* 500:
* description: Erreur serveur
*/
router.post('/projects', ProjectController.createProject);
/**
* @swagger
* /projects/{id}:
* delete:
* summary: Supprime un projet
* parameters:
* - in: path
* name: id
* required: true
* schema:
* type: integer
* description: ID du projet
* responses:
* 200:
* description: Projet supprimé avec succès
* 400:
* description: ID de projet invalide
* 500:
* description: Erreur serveur
*/
router.delete('/projects/:id', ProjectController.deleteProject);
module.exports = router;