// src/routes/measurementRoutes.js const express = require('express'); const router = express.Router(); const MeasurementController = require('../controllers/measurementController'); /** * @swagger * /measurements: * get: * tags: * - Mesures * summary: Récupère toutes les mesures * description: Retourne la liste complète des mesures de tous les projets * responses: * 200: * description: Liste de toutes les mesures * content: * application/json: * schema: * type: array * items: * $ref: '#/components/schemas/Measurement' * 404: * $ref: '#/components/responses/NotFound' * 500: * $ref: '#/components/responses/ServerError' */ router.get('/measurements', MeasurementController.getAllMeasurements); /** * @swagger * /measurements/{id}: * get: * tags: * - Mesures * summary: Récupère une mesure par ID * description: Retourne les détails d'une mesure spécifique * parameters: * - in: path * name: id * required: true * schema: * type: integer * description: ID de la mesure * responses: * 200: * description: Détails de la mesure * content: * application/json: * schema: * $ref: '#/components/schemas/Measurement' * 400: * $ref: '#/components/responses/BadRequest' * 404: * $ref: '#/components/responses/NotFound' * 500: * $ref: '#/components/responses/ServerError' */ router.get('/measurements/:id', MeasurementController.getMeasurementById); /** * @swagger * /measurements/{projectId}/{orderId}: * get: * tags: * - Mesures * summary: Récupère une mesure par projet ID et ordre ID * description: Retourne les détails d'une mesure en fonction du projet et de son numéro d'ordre * parameters: * - in: path * name: projectId * required: true * schema: * type: integer * description: ID du projet * - in: path * name: orderId * required: true * schema: * type: integer * description: ID d'ordre séquentiel de la mesure dans le projet * responses: * 200: * description: Détails de la mesure * content: * application/json: * schema: * $ref: '#/components/schemas/Measurement' * 400: * $ref: '#/components/responses/BadRequest' * 404: * $ref: '#/components/responses/NotFound' * 500: * $ref: '#/components/responses/ServerError' */ router.get('/measurements/:projectId/:orderId', MeasurementController.getMeasurementByProjectAndOrderId); /** * @swagger * /measurements/{id}: * delete: * tags: * - Mesures * summary: Supprime une mesure * description: Supprime une mesure et l'image associée * parameters: * - in: path * name: id * required: true * schema: * type: integer * description: ID de la mesure à supprimer * responses: * 200: * description: Mesure supprimée avec succès * content: * application/json: * schema: * type: object * properties: * message: * type: string * example: Mesure supprimée avec succès * id: * type: integer * example: 123 * 400: * $ref: '#/components/responses/BadRequest' * 404: * $ref: '#/components/responses/NotFound' * 500: * $ref: '#/components/responses/ServerError' */ router.delete('/measurements/:id', MeasurementController.deleteMeasurement); module.exports = router;