app2-api/modules/speakers/speaker.routes.js
2019-07-21 16:15:22 +02:00

87 lines
2.3 KiB
JavaScript

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;