This commit is contained in:
David Arranz 2019-07-29 18:27:38 +02:00
parent 48941ae125
commit 1373b3ab05
2 changed files with 22 additions and 18 deletions

View File

@ -343,11 +343,21 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('CitiesOfEvents', () => {
return {
attributes: [[sequelize.fn('DISTINCT', sequelize.col('city')), 'city']]
group: ['city'],
attributes: ['city', [sequelize.fn('COUNT', sequelize.col('id')), 'ediciones']]
}
});
Event.addScope('onlyOfCity', (city) => {
return {
where: {
city: {
[Sequelize.Op.eq]: city
}
},
}
});
return Event;
};

View File

@ -19,19 +19,6 @@ const generalInvalidFields = [
'multiple_limit', 'allow_overflow', 'marketing_list',
];
//Da todas las ciudades en las que ha habido congresos
routes.get('/cities', cacheSuccesses('24 hours'),
// isLoggedUser,
// FieldMiddleware.middleware({
// invalidFields: generalInvalidFields
// }),
// PaginateMiddleware.middleware(),
// SortMiddleware.middleware({ default: "-init_date" }),
// eventController.find({
// scopes: ['defaultScope', 'includeVenue', 'includeMultimedias'],
// }),
);
routes.get('/events',
isLoggedUser,
FieldMiddleware.middleware({
@ -39,9 +26,16 @@ routes.get('/events',
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-init_date" }),
eventController.find({
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias'],
}),
(req, res, next) => {
if (!req.body.city)
return eventController.find({
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
})(req, res, next)
else
return eventController.find({
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['onlyOfCity', req.body.city] }]
})(req, res, next);
}
);
routes.get('/events/cities',