feat(database): Implement DatabaseManager for managing database structure and initialization
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 1m51s
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:
142
src/routes/projectRoutes.js
Normal file
142
src/routes/projectRoutes.js
Normal 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;
|
||||
Reference in New Issue
Block a user