app2-api/modules/events/event.routes.js
2019-07-16 20:18:28 +02:00

120 lines
3.2 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 eventController = require('./event.controller');
const eventValidation = require('./event.validations');
routes.get('/events',
isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['user', 'createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-date" }),
eventController.find
);
routes.get('/events/next',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: ['userId', 'createdAt', 'updatedAt']
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "init_available_date" }),
//ScopeMiddleware
eventController.findNext,
//eventController.find
// model.scope('next').findAll();
///SchemaValidator(eventValidation.EventsListOutputType, true),
);
routes.get('/events/pass',
isLoggedUser,
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-date" }),
eventController.findPass
);
routes.get('/events/current',
isLoggedUser,
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "init_available_date" }),
eventController.findCurrent
);
routes.get('/events/:id',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),
eventController.findOne
);
// Comentarios
routes.get('/events/:id/comments',
//isLoggedUser,
(req, res, next) => {
req.params.association = 'Comments';
next();
},
eventController.find,
);
// Multimedias
routes.get('/events/:id/multimedias',
//isLoggedUser,
(req, res, next) => {
req.params.association = 'Multimedias';
next();
},
eventController.find,
);
// Inscripciones
routes.get('/events/:id/inscriptions',
// Esto da las inscripciones (1) de un usuario pero si el usuario fuera el administrador podría todas las inscripciones de un evento
//isLoggedUser,
//eventController.findComments
);
routes.post('/events/:id/inscriptions',
// Hacer una inscripción
isLoggedUser,
eventController.createInscription
);
routes.delete('/events/:id/inscriptions',
// Borrar una inscripción (poner el id de la inscripción????)
//isLoggedUser,
//eventController.findComments
);
routes.get('/events/:id/reservations/:encodedInvitationCode',
//isLoggedUser,
//eventController.findComments
);
//routes.get('/venues', isLoggedUser, SortMiddleware.middleware({ default: "name" }), venueController.find);
//routes.get('/venues/:id', isLoggedUser, venueController.findOne);
//routes.post('/entity/', SchemaValidator(VenueValidation.VenueInputType, true), venueController.create);
//routes.put('/venues/:id', isAdministratorUser, venueController.update);
//routes.delete('/venues/:id', isAdministratorUser, venueController.delete);
module.exports = routes;