const routes = require('express').Router(); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); const PaginateMiddleware = require('../../middlewares/paginate'); const FieldMiddleware = require('../../middlewares/fields'); const SortMiddleware = require('../../middlewares/sort'); //const entityValidation = require('./entity.validations'); const speakerController = require('./speaker.controller'); // Todos los ponentes routes.get('/speakers', isLoggedUser, FieldMiddleware.middleware({ invalidFields: ['userId', 'createdAt', 'updatedAt'] }), PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "name" }), speakerController.find({ scopes: ['defaultScope'], }) ); // Ponentes destacados routes.get('/speakers/featured', isLoggedUser, FieldMiddleware.middleware({ invalidFields: ['userId', 'createdAt'] }), PaginateMiddleware.middleware(), //SortMiddleware.middleware({ default: "name" }), speakerController.find({ scopes: ['defaultScope', 'featured', 'includeMultimedias'], }) ); // Ponentes más recientes routes.get('/speakers/last', isLoggedUser, FieldMiddleware.middleware({ invalidFields: ['userId'] }), PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "-createdAt" }), speakerController.find({ scopes: ['defaultScope', 'last', 'includeMultimedias'], }) ); // Un ponente routes.get('/speakers/:id', isLoggedUser, /*FieldMiddleware.middleware({ invalidFields: ['createdAt'] }),*/ speakerController.findOne() ); // Dar ponentes similares a uno dado routes.get('/speakers/:id/similar', isLoggedUser, /*FieldMiddleware.middleware({ invalidFields: ['createdAt'] }),*/ PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "name" }), speakerController.find ); // Listar las preguntas hechas a un ponente routes.get('/speakers/:id/:association', isLoggedUser, /*FieldMiddleware.middleware({ invalidFields: ['createdAt'] }),*/ PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "-createdAt" }), speakerController.find ); module.exports = routes;