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'); const generalInvalidFields = [ 'userId', 'createdAt', 'state', ]; // Todos los ponentes routes.get('/speakers', isLoggedUser, FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "name" }), speakerController.find({ scopes: ['defaultScope', 'includeValues'], }) ); // Ponentes destacados routes.get('/speakers/featured', isLoggedUser, FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), PaginateMiddleware.middleware(), //SortMiddleware.middleware({ default: "name" }), speakerController.find({ scopes: ['defaultScope', 'includeValues', '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: generalInvalidFields }), speakerController.findOne({ scopes: ['defaultScope', 'includeValues', 'includeMultimedias', 'includeComments'], }) ); // 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;