Files
timelapse-backend/src/routes/measurementRoutes.js

136 lines
3.9 KiB
JavaScript

// 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;