Próximos congresos
This commit is contained in:
parent
f101643592
commit
755e7e6461
@ -2,13 +2,27 @@
|
||||
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const eventService = require('./event.service');
|
||||
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
|
||||
|
||||
|
||||
// Module Name
|
||||
const MODULE_NAME = '[event.controller]';
|
||||
|
||||
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);
|
||||
|
||||
|
||||
@ -11,6 +11,10 @@ const FieldMiddleware = require('../../middlewares/fields');*/
|
||||
const eventController = require('./event.controller');
|
||||
|
||||
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/:id', isLoggedUser, venueController.findOne);
|
||||
|
||||
|
||||
@ -5,6 +5,47 @@ const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
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);
|
||||
Loading…
Reference in New Issue
Block a user