Próximos congresos
This commit is contained in:
parent
f101643592
commit
755e7e6461
@ -2,13 +2,27 @@
|
|||||||
|
|
||||||
const generateControllers = require('../../core/controllers');
|
const generateControllers = require('../../core/controllers');
|
||||||
const eventService = require('./event.service');
|
const eventService = require('./event.service');
|
||||||
|
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
|
||||||
|
|
||||||
|
|
||||||
// Module Name
|
// Module Name
|
||||||
const MODULE_NAME = '[event.controller]';
|
const MODULE_NAME = '[event.controller]';
|
||||||
|
|
||||||
const controllerOptions = { MODULE_NAME };
|
const controllerOptions = { MODULE_NAME };
|
||||||
const extraControllers = {};
|
const extraControllers = {
|
||||||
|
|
||||||
|
findNext: async (req, res, next) => {
|
||||||
|
const params = extractParamsFromRequest(req, res, {});
|
||||||
|
try {
|
||||||
|
const result = await eventService.fetchNext(null, { user: req.user });
|
||||||
|
return handleResultResponse(result, result.count, params, res);
|
||||||
|
} catch (error) {
|
||||||
|
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = generateControllers(eventService, extraControllers, controllerOptions);
|
module.exports = generateControllers(eventService, extraControllers, controllerOptions);
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,10 @@ const FieldMiddleware = require('../../middlewares/fields');*/
|
|||||||
const eventController = require('./event.controller');
|
const eventController = require('./event.controller');
|
||||||
|
|
||||||
routes.get('/events', eventController.find);
|
routes.get('/events', eventController.find);
|
||||||
|
routes.get('/events/next', eventController.findNext);
|
||||||
|
routes.get('/events/pass', eventController.find);
|
||||||
|
routes.get('/events/current', eventController.find);
|
||||||
|
|
||||||
//routes.get('/venues', isLoggedUser, SortMiddleware.middleware({ default: "name" }), venueController.find);
|
//routes.get('/venues', isLoggedUser, SortMiddleware.middleware({ default: "name" }), venueController.find);
|
||||||
//routes.get('/venues/:id', isLoggedUser, venueController.findOne);
|
//routes.get('/venues/:id', isLoggedUser, venueController.findOne);
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,47 @@ const _ = require('lodash');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
|
||||||
const extraMethods = {};
|
const extraMethods = {
|
||||||
|
fetchNext: async (params, context) => {
|
||||||
|
var where = [];
|
||||||
|
var order = [];
|
||||||
|
var include = [];
|
||||||
|
|
||||||
|
where.push({
|
||||||
|
date: {
|
||||||
|
$gte: moment().add(1, 'days').startOf('day').utc()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
order.push(['date', 'ASC']);
|
||||||
|
|
||||||
|
// Incluir ponentes
|
||||||
|
include.push({
|
||||||
|
model: models.Speaker,
|
||||||
|
//as: 'speakers'
|
||||||
|
});
|
||||||
|
|
||||||
|
// Incluir tipo de evento
|
||||||
|
include.push({
|
||||||
|
model: models.EventType,
|
||||||
|
//as: 'type'
|
||||||
|
})
|
||||||
|
|
||||||
|
// Solo eventos publicados
|
||||||
|
where.push({
|
||||||
|
state: 'publish'
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await models.Event.findAll({
|
||||||
|
where: where,
|
||||||
|
order: order,
|
||||||
|
include: include,
|
||||||
|
});
|
||||||
|
return result.toJSON();
|
||||||
|
} catch(error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = generateService(models.Event, extraMethods);
|
module.exports = generateService(models.Event, extraMethods);
|
||||||
Loading…
Reference in New Issue
Block a user