Aucune modification apportée au code
This commit is contained in:
795
routes/_swaggerRoutes.js
Normal file
795
routes/_swaggerRoutes.js
Normal file
@@ -0,0 +1,795 @@
|
||||
// Routes SWAGGER - Documentation API
|
||||
// Documentation: https://swagger.io/docs/specification/2-0/basic-structure/
|
||||
// Les documentations sont volontairement séparées du code source pour des raisons de lisibilité et de maintenabilité.
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /projects/{id}:
|
||||
* delete:
|
||||
* summary: Supprimer un projet par son ID
|
||||
* description: Supprime un projet spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Projet supprimé avec succès.
|
||||
* 400:
|
||||
* description: ID de projet invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /projects:
|
||||
* get:
|
||||
* summary: Récupérer tous les projets
|
||||
* description: Récupère tous les projets disponibles.
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une liste de projets.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: array
|
||||
* items:
|
||||
* type: object
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /projects/{id}:
|
||||
* get:
|
||||
* summary: Récupérer un projet par ID
|
||||
* description: Récupère un projet spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Un projet.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* 400:
|
||||
* description: ID de projet invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /projects/{id}/videos:
|
||||
* get:
|
||||
* summary: Récupérer les vidéos d'un projet par ID
|
||||
* description: Récupère les vidéos associées à un projet spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une liste de vidéos.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: array
|
||||
* items:
|
||||
* type: object
|
||||
* 400:
|
||||
* description: ID de projet invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /projects/{id}/measurements:
|
||||
* get:
|
||||
* summary: Récupérer les mesures d'un projet par ID
|
||||
* description: Récupère les mesures associées à un projet spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une liste de mesures.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: array
|
||||
* items:
|
||||
* type: object
|
||||
* 400:
|
||||
* description: ID de projet invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /projects:
|
||||
* post:
|
||||
* summary: Ajouter un nouveau projet
|
||||
* description: Ajoute un nouveau projet à la base de données.
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* name:
|
||||
* type: string
|
||||
* description:
|
||||
* type: string
|
||||
* responses:
|
||||
* 201:
|
||||
* description: Projet ajouté avec succès.
|
||||
* 400:
|
||||
* description: Le nom et la description sont requis.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /procedure/stop/:
|
||||
* post:
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /smile:
|
||||
* get:
|
||||
* summary: Retrieve a smile image
|
||||
* responses:
|
||||
* 200:
|
||||
* description: A smile image
|
||||
* content:
|
||||
* image/jpeg:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Image not found
|
||||
*/
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /images/{projectId}/{orderId}:
|
||||
* get:
|
||||
* summary: Retrieve an image by project and order ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: projectId
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The project ID
|
||||
* - in: path
|
||||
* name: orderId
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The order ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: An image file
|
||||
* content:
|
||||
* application/octet-stream:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Image not found
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /images/{measurementId}:
|
||||
* get:
|
||||
* summary: Retrieve an image by measurement ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: measurementId
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The measurement ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: An image file
|
||||
* content:
|
||||
* application/octet-stream:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Image not found
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /preview/{projectId}/{orderId}:
|
||||
* get:
|
||||
* summary: Retrieve a preview of an image by project and order ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: projectId
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The project ID
|
||||
* - in: path
|
||||
* name: orderId
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The order ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: A resized preview of the image
|
||||
* content:
|
||||
* image/jpeg:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Image not found
|
||||
* 500:
|
||||
* description: Internal Server Error
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements:
|
||||
* get:
|
||||
* summary: Récupérer toutes les mesures
|
||||
* description: Récupère toutes les mesures de la base de données.
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une liste de mesures.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: array
|
||||
* items:
|
||||
* type: object
|
||||
* properties:
|
||||
* id:
|
||||
* type: integer
|
||||
* project_id:
|
||||
* type: integer
|
||||
* timestamp:
|
||||
* type: string
|
||||
* format: date-time
|
||||
* image_path:
|
||||
* type: string
|
||||
* temperature:
|
||||
* type: number
|
||||
* humidity:
|
||||
* type: number
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements/{id}:
|
||||
* get:
|
||||
* summary: Récupérer une mesure par ID
|
||||
* description: Récupère une mesure spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la mesure
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une mesure.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* id:
|
||||
* type: integer
|
||||
* project_id:
|
||||
* type: integer
|
||||
* timestamp:
|
||||
* type: string
|
||||
* format: date-time
|
||||
* image_path:
|
||||
* type: string
|
||||
* temperature:
|
||||
* type: number
|
||||
* humidity:
|
||||
* type: number
|
||||
* 400:
|
||||
* description: ID de mesure invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements/{projectId}/{orderId}:
|
||||
* get:
|
||||
* summary: Récupérer une mesure par project ID et order ID
|
||||
* description: Récupère une mesure spécifique en utilisant le project ID et order ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: projectId
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* - in: path
|
||||
* name: orderId
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la commande
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une mesure.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* id:
|
||||
* type: integer
|
||||
* project_id:
|
||||
* type: integer
|
||||
* timestamp:
|
||||
* type: string
|
||||
* format: date-time
|
||||
* image_path:
|
||||
* type: string
|
||||
* temperature:
|
||||
* type: number
|
||||
* humidity:
|
||||
* type: number
|
||||
* 400:
|
||||
* description: ID de projet ou de commande invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements:
|
||||
* post:
|
||||
* summary: Ajouter une nouvelle mesure
|
||||
* description: Ajoute une nouvelle mesure à la base de données.
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* project_id:
|
||||
* type: integer
|
||||
* timestamp:
|
||||
* type: string
|
||||
* format: date-time
|
||||
* image_path:
|
||||
* type: string
|
||||
* temperature:
|
||||
* type: number
|
||||
* humidity:
|
||||
* type: number
|
||||
* responses:
|
||||
* 201:
|
||||
* description: Mesure ajoutée avec succès.
|
||||
* 400:
|
||||
* description: Tous les champs sont requis.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements/{id}:
|
||||
* delete:
|
||||
* summary: Supprimer une mesure par ID
|
||||
* description: Supprime une mesure spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la mesure
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Mesure supprimée avec succès.
|
||||
* 400:
|
||||
* description: ID de mesure invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /measurements/{projectId}/{orderId}:
|
||||
* delete:
|
||||
* summary: Supprimer une mesure par project ID et order ID
|
||||
* description: Supprime une mesure spécifique en utilisant le project ID et order ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: projectId
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID du projet
|
||||
* - in: path
|
||||
* name: orderId
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la commande
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Mesure supprimée avec succès.
|
||||
* 400:
|
||||
* description: ID de projet ou de commande invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /uploadmeasurement:
|
||||
* post:
|
||||
* summary: Télécharger une mesure avec une image
|
||||
* description: Télécharge une mesure avec une image pour un projet spécifique.
|
||||
* requestBody:
|
||||
* content:
|
||||
* multipart/form-data:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* image:
|
||||
* type: string
|
||||
* format: binary
|
||||
* description: Fichier image à télécharger
|
||||
* projectId:
|
||||
* type: integer
|
||||
* description: ID du projet
|
||||
* timestamp:
|
||||
* type: string
|
||||
* format: date-time
|
||||
* description: Horodatage de la mesure
|
||||
* temperature:
|
||||
* type: number
|
||||
* description: Température mesurée
|
||||
* humidity:
|
||||
* type: number
|
||||
* description: Humidité mesurée
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Mesure téléchargée avec succès.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* path:
|
||||
* type: string
|
||||
* id:
|
||||
* type: integer
|
||||
* 400:
|
||||
* description: Tous les champs sont requis.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos:
|
||||
* get:
|
||||
* summary: Récupérer toutes les vidéos
|
||||
* description: Récupère toutes les vidéos de la base de données.
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une liste de vidéos.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: array
|
||||
* items:
|
||||
* type: object
|
||||
* properties:
|
||||
* id:
|
||||
* type: integer
|
||||
* project_id:
|
||||
* type: integer
|
||||
* measurement_ids:
|
||||
* type: string
|
||||
* video_path:
|
||||
* type: string
|
||||
* start_timestamp:
|
||||
* type: string
|
||||
* end_timestamp:
|
||||
* type: string
|
||||
* image_count:
|
||||
* type: integer
|
||||
* resolution:
|
||||
* type: string
|
||||
* duration:
|
||||
* type: number
|
||||
* fps:
|
||||
* type: number
|
||||
* status:
|
||||
* type: integer
|
||||
* name:
|
||||
* type: string
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos/{id}:
|
||||
* get:
|
||||
* summary: Récupérer une vidéo par ID
|
||||
* description: Récupère une vidéo spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la vidéo
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Une vidéo.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* id:
|
||||
* type: integer
|
||||
* project_id:
|
||||
* type: integer
|
||||
* measurement_ids:
|
||||
* type: string
|
||||
* video_path:
|
||||
* type: string
|
||||
* start_timestamp:
|
||||
* type: string
|
||||
* end_timestamp:
|
||||
* type: string
|
||||
* image_count:
|
||||
* type: integer
|
||||
* resolution:
|
||||
* type: string
|
||||
* duration:
|
||||
* type: number
|
||||
* fps:
|
||||
* type: number
|
||||
* status:
|
||||
* type: integer
|
||||
* name:
|
||||
* type: string
|
||||
* 400:
|
||||
* description: ID de vidéo invalide.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos:
|
||||
* post:
|
||||
* summary: Créer une nouvelle vidéo
|
||||
* description: Crée une nouvelle vidéo avec les informations fournies.
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* project_id:
|
||||
* type: integer
|
||||
* measurement_ids:
|
||||
* type: string
|
||||
* name:
|
||||
* type: string
|
||||
* resolution:
|
||||
* type: string
|
||||
* duration:
|
||||
* type: number
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Vidéo créée avec succès.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* video:
|
||||
* type: object
|
||||
* properties:
|
||||
* project_id:
|
||||
* type: integer
|
||||
* measurement_ids:
|
||||
* type: string
|
||||
* name:
|
||||
* type: string
|
||||
* resolution:
|
||||
* type: string
|
||||
* duration:
|
||||
* type: number
|
||||
* 400:
|
||||
* description: Tous les champs sont requis.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos/{id}:
|
||||
* delete:
|
||||
* summary: Supprimer une vidéo par ID
|
||||
* description: Supprime une vidéo spécifique en utilisant son ID.
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: id
|
||||
* schema:
|
||||
* type: integer
|
||||
* required: true
|
||||
* description: ID de la vidéo
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Vidéo supprimée avec succès.
|
||||
* 400:
|
||||
* description: ID de vidéo invalide.
|
||||
* 404:
|
||||
* description: Aucune vidéo trouvée avec cet ID.
|
||||
* 500:
|
||||
* description: Erreur serveur.
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos/file/{video_id}:
|
||||
* get:
|
||||
* summary: Retrieve a video by video ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: video_id
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The video ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: A video file
|
||||
* content:
|
||||
* application/octet-stream:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Video not found
|
||||
* 400:
|
||||
* description: Video not yet produced
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos/render/{video_id}:
|
||||
* post:
|
||||
* summary: Render a video by video ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: video_id
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The video ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Render process started
|
||||
* 404:
|
||||
* description: Video not found
|
||||
* 500:
|
||||
* description: Server error
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /videos/reset/{video_id}:
|
||||
* get:
|
||||
* summary: Reset the status of a video by video ID
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: video_id
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
* description: The video ID
|
||||
* responses:
|
||||
* 200:
|
||||
* description: Video reset successfully
|
||||
* 404:
|
||||
* description: Video not found
|
||||
* 500:
|
||||
* description: Server error
|
||||
*/
|
||||
/**
|
||||
* @swagger
|
||||
* /cat:
|
||||
* get:
|
||||
* summary: Retrieve a cat video
|
||||
* responses:
|
||||
* 200:
|
||||
* description: A cat video
|
||||
* content:
|
||||
* application/octet-stream:
|
||||
* schema:
|
||||
* type: string
|
||||
* format: binary
|
||||
* 404:
|
||||
* description: Video not found
|
||||
*/
|
||||
Reference in New Issue
Block a user