.
This commit is contained in:
parent
abdb2d67cd
commit
8cff7c6e01
@ -80,11 +80,14 @@ const parseParamsToFindOptions = (params) => {
|
|||||||
result.query = params.query
|
result.query = params.query
|
||||||
}
|
}
|
||||||
|
|
||||||
// Where
|
// Params
|
||||||
if (params.params) {
|
if (params.params) {
|
||||||
result.where = params.params
|
result.params = params.params
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Where
|
||||||
|
result.where = [];
|
||||||
|
|
||||||
// Paginate
|
// Paginate
|
||||||
if (params.paginate) {
|
if (params.paginate) {
|
||||||
result.offset = params.paginate.limit * (params.paginate.page - 1);
|
result.offset = params.paginate.limit * (params.paginate.page - 1);
|
||||||
@ -92,8 +95,8 @@ const parseParamsToFindOptions = (params) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Order
|
// Order
|
||||||
|
result.order = [];
|
||||||
if (params.sort) {
|
if (params.sort) {
|
||||||
result.order = [];
|
|
||||||
Object.keys(params.sort).forEach(key => {
|
Object.keys(params.sort).forEach(key => {
|
||||||
let dir = params.sort[key] ? 'ASC' : 'DESC';
|
let dir = params.sort[key] ? 'ASC' : 'DESC';
|
||||||
result.order.push([key, dir])
|
result.order.push([key, dir])
|
||||||
|
|||||||
@ -14,7 +14,7 @@ const extraControllers = {
|
|||||||
findNext: async (req, res, next) => {
|
findNext: async (req, res, next) => {
|
||||||
const params = extractParamsFromRequest(req, res, {});
|
const params = extractParamsFromRequest(req, res, {});
|
||||||
try {
|
try {
|
||||||
const result = await eventService.fetchNext(null, { user: req.user });
|
const result = await eventService.fetchNext(params, { user: req.user });
|
||||||
return handleResultResponse(result, result.count, params, res);
|
return handleResultResponse(result, result.count, params, res);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
|
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
|
||||||
|
|||||||
@ -3,9 +3,9 @@ const routes = require('express').Router();
|
|||||||
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
||||||
const SchemaValidator = require('../../middlewares/schemaValidator');
|
const SchemaValidator = require('../../middlewares/schemaValidator');
|
||||||
|
|
||||||
/*const PaginateMiddleware = require('../../middlewares/paginate');
|
const PaginateMiddleware = require('../../middlewares/paginate');
|
||||||
const FieldMiddleware = require('../../middlewares/fields');*/
|
const FieldMiddleware = require('../../middlewares/fields');
|
||||||
//const SortMiddleware = require('../../middlewares/sort');
|
const SortMiddleware = require('../../middlewares/sort');
|
||||||
|
|
||||||
//const entityValidation = require('./entity.validations');
|
//const entityValidation = require('./entity.validations');
|
||||||
const eventController = require('./event.controller');
|
const eventController = require('./event.controller');
|
||||||
@ -15,35 +15,40 @@ routes.get('/events',
|
|||||||
/*FieldMiddleware.middleware({
|
/*FieldMiddleware.middleware({
|
||||||
invalidFields: ['user', 'createdAt']
|
invalidFields: ['user', 'createdAt']
|
||||||
}),*/
|
}),*/
|
||||||
//PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
//SortMiddleware.middleware({ default: "date" }),
|
SortMiddleware.middleware({ default: "-date" }),
|
||||||
eventController.find
|
eventController.find
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get('/events/next',
|
routes.get('/events/next',
|
||||||
//isLoggedUser,
|
//isLoggedUser,
|
||||||
|
FieldMiddleware.middleware({
|
||||||
|
invalidFields: ['user', 'createdAt']
|
||||||
|
}),
|
||||||
|
PaginateMiddleware.middleware(),
|
||||||
|
SortMiddleware.middleware({ default: "init_avalible_date" }),
|
||||||
eventController.findNext
|
eventController.findNext
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get('/events/pass',
|
routes.get('/events/pass',
|
||||||
//isLoggedUser,
|
//isLoggedUser,
|
||||||
eventController.findPass
|
eventController.find
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get('/events/current',
|
routes.get('/events/current',
|
||||||
//isLoggedUser,
|
//isLoggedUser,
|
||||||
eventController.findCurrent
|
eventController.find
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
routes.get('/events/:id',
|
/*routes.get('/events/:id',
|
||||||
// isLoggedUser,
|
isLoggedUser,
|
||||||
/*FieldMiddleware.middleware({
|
FieldMiddleware.middleware({
|
||||||
invalidFields: ['updatedAt', 'createdAt']
|
invalidFields: ['updatedAt', 'createdAt']
|
||||||
}),*/
|
}),
|
||||||
|
|
||||||
eventController.finOne
|
eventController.finOne
|
||||||
);
|
);*/
|
||||||
|
|
||||||
//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);
|
||||||
|
|||||||
@ -4,45 +4,41 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
|
const Sequelize = require('sequelize');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
fetchNext: async (params, context) => {
|
fetchNext: async (params, context) => {
|
||||||
var where = [];
|
const findOptions = parseParamsToFindOptions(params);
|
||||||
var order = [];
|
|
||||||
var include = [];
|
|
||||||
|
|
||||||
where.push({
|
findOptions.where.push({
|
||||||
date: {
|
date: {
|
||||||
$gte: moment().add(1, 'days').startOf('day').utc()
|
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').utc()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
order.push(['date', 'ASC']);
|
|
||||||
|
|
||||||
// Incluir ponentes
|
|
||||||
include.push({
|
// Incluir
|
||||||
model: models.Speaker,
|
findOptions.include.push({
|
||||||
//as: 'speakers'
|
model: models.EventSchedule,
|
||||||
|
});
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.EventType,
|
||||||
|
});
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.Venue,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Incluir tipo de evento
|
|
||||||
include.push({
|
|
||||||
model: models.EventType,
|
|
||||||
//as: 'type'
|
|
||||||
})
|
|
||||||
|
|
||||||
// Solo eventos publicados
|
// Solo eventos publicados
|
||||||
where.push({
|
findOptions.where.push({
|
||||||
state: 'publish'
|
state: 'publish'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await models.Event.findAll({
|
return await models.Event.findAll(findOptions);
|
||||||
where: where,
|
|
||||||
order: order,
|
|
||||||
include: include,
|
|
||||||
});
|
|
||||||
return result.toJSON();
|
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,8 @@ const FieldMiddleware = require('../../middlewares/fields');*/
|
|||||||
const VenueValidation = require('./venue.validations');
|
const VenueValidation = require('./venue.validations');
|
||||||
const venueController = require('./venue.controller');
|
const venueController = require('./venue.controller');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//routes.get('/venues', true, SortMiddleware.middleware({ default: "name" }), venueController.find);
|
//routes.get('/venues', true, SortMiddleware.middleware({ default: "name" }), venueController.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);
|
||||||
|
|||||||
@ -49,7 +49,7 @@ server.on('error', err => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
models.sequelize.sync({ force: true }).then(() => {
|
models.sequelize.sync({ force: false }).then(() => {
|
||||||
// Launch server.
|
// Launch server.
|
||||||
server.listen(currentState.port, (err) => {
|
server.listen(currentState.port, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user