imagina.productora
Version:
Imagina es una productora de entretenimiento que te brinda un servicio completamente personalizable para tus eventos, acompañándote en todas las fases de este proceso para que logres sentirte cómodo y festejes con tus seres queridos, te hacemos parte
160 lines (145 loc) • 4.27 kB
JavaScript
const express =require ('express');
const router = express.Router();
const testimonioModel= require('../models/testimonios')
/**
* @swagger
* components:
* schemas:
* Testimonios:
* type: object
* properties:
* nombre:
* type: string,
* required: true
* testimonio:
* type: string,
* required: true
* fecha:
* type: string
* format: date
* required: true
* required:
* -nombre
* -testimonio
* -fecha
*
*/
//Obtener una lista con todos los testimonios
/**
* @swagger
* /api/testimonios:
* get:
* summary: Obtiene una lista con todos los testimonios
* tags: [Testimonios de nuestros clientes]
* responses:
* 200:
* description: Lista de testimonios obtenida con éxito
* content:
* application/json:
* schema:
* type: array
* items:
* $ref: '#/components/schemas/Testimonios'
* 500:
* description: Error en el servidor
*/
router.get('/testimonios', (req, res) => {
testimonioModel.find()
.then((data) => res.json(data))
.catch((error) => res.status(500).json({ mensaje: error }));
});
//Crear un nuevo testimonio
/**
* @swagger
* /api/testimonios:
* post:
* summary: Agrega tu testimonio
* tags: [Testimonios de nuestros clientes]
* requestBody:
* required: true
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Testimonios'
* responses:
* 200:
* description: Testimonio agregado con éxito
* 500:
* description: Error en el servidor
*/
router.post('/testimonios', (req, res) => {
const {nombre, testimonio} = req.body;
const nuevoTestimonio = new testimonioModel({
nombre,
testimonio,
fecha: new Date()
});
nuevoTestimonio
.save()
.then((data) => res.json(data))
.catch((error) => res.status(500).json({ mensaje: error }));
});
//actualiza tu comentario
/**
* @swagger
* /api/testimonios/{id}:
* put:
* summary: Actualiza un testimonio existente por su ID
* tags: [Testimonios de nuestros clientes]
* parameters:
* - in: path
* name: id
* description: ID del testimonio a actualizar
* schema:
* type: string
* required: true
* requestBody:
* required: true
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/Testimonios'
* responses:
* 200:
* description: Testimonio actualizado con éxito
* 404:
* description: Testimonio no encontrado
* 500:
* description: Error en el servidor
*/
router.put('/testimonios/:id', (req, res)=>{
const {id} = req.params;
const {nombre, testimonio}= req.body;
testimonioModel.findByIdAndUpdate(id, {nombre, testimonio }, { new: true })
.then((data) => res.json(data))
.catch((error) => res.status(500).json({mensaje: error.message }))
});
//Borrar testimonio por ID
/**
* @swagger
* /api/testimonios:
* delete:
* summary: Elimina un testimonio por su ID
* tags: [Testimonios de nuestros clientes]
* parameters:
* - in: query
* name: id
* description: ID del testimonio a eliminar
* schema:
* type: string
* required: true
* responses:
* 200:
* description: Testimonio eliminado con éxito
* 404:
* description: Testimonio no encontrado
* 500:
* description: Error en el servidor
*/
router.delete('/testimonios/:id', (req, res) => {
const { id } = req.query;
testimonioModel.findByIdAndRemove(id)
.then((data) => res.json(data))
.catch((error) => res.json({mensaje:error}))
});
module.exports = router;