This commit is contained in:
David Arranz 2019-07-09 20:34:39 +02:00
parent 050a41f0b3
commit fb0e8a2e21
10 changed files with 228 additions and 9 deletions

View File

@ -81,13 +81,11 @@ const parseParamsToFindOptions = (params) => {
}
// Params
result.where = {};
if (params.params) {
result.params = params.params
result.where = params.params
}
// Where
result.where = [];
// Paginate
if (params.paginate) {
result.offset = params.paginate.limit * (params.paginate.page - 1);
@ -133,6 +131,7 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) =>
fetchOne: async (params, context) => {
const findOptions = parseParamsToFindOptions(params);
console.log(findOptions);
return await model.findOne({
where: findOptions.where,
include: findOptions.include

View File

@ -53,12 +53,42 @@ routes.get('/events/:id',
eventController.findOne
);
// Comentarios
routes.get('/events/:id/comments',
//isLoggedUser,
//eventController.findComments
);
// 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.findComments
);
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);

View File

@ -11,9 +11,10 @@ const extraMethods = {
fetchNext: async (params, context) => {
const findOptions = parseParamsToFindOptions(params);
findOptions.where.push({
findOptions.where = Object.assign({},
findOptions.where, {
date: {
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').utc()
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').utc()
}
});
@ -30,11 +31,12 @@ const extraMethods = {
});
// Solo eventos publicados
findOptions.where.push({
state: 'publish'
findOptions.where = Object.assign({},
findOptions.where, {
state: 'publish'
});
try {

View File

@ -0,0 +1,16 @@
'use strict';
const generateControllers = require('../../core/controllers');
const speakerService = require('./speaker.service');
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
// Module Name
const MODULE_NAME = '[speaker.controller]';
const controllerOptions = { MODULE_NAME };
const extraControllers = {
};
module.exports = generateControllers(speakerService, extraControllers, controllerOptions);

View File

@ -0,0 +1,80 @@
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 speakerController = require('./speaker.controller');
// Todos los ponentes
routes.get('/speakers',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['user', 'createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
speakerController.find
);
// Ponentes destacados
routes.get('/speakers/featured',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['user', 'createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
speakerController.find
);
// Ponentes más recientes
routes.get('/speakers/last',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['user', 'createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-createdAt" }),
speakerController.find
);
// Un ponente
routes.get('/speakers/:id',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),*/
speakerController.findOne
);
// Listar las preguntas hechas a un ponente
routes.get('/speakers/:id/questions',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-createdAt" }),
speakerController.find
);
// Dar ponentes similares a uno dado
routes.get('/speakers/:id/similar',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
speakerController.find
);
module.exports = routes;

View File

@ -0,0 +1,12 @@
/* global Venue */
'use strict';
const _ = require('lodash');
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
const Sequelize = require('sequelize');
const models = require('../../core/models');
const extraMethods = {
};
module.exports = generateService(models.Speaker, extraMethods);

View File

@ -0,0 +1,26 @@
'use strict';
const generateControllers = require('../../core/controllers');
const valueService = require('./value.service');
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
// Module Name
const MODULE_NAME = '[value.controller]';
const controllerOptions = { MODULE_NAME };
const extraControllers = {
findSpeakers: (req, res, next) => {
const params = extractParamsFromRequest(req, res, {});
console.log(params);
try {
const result = ["hola"]; //await valueService.fetchAll(params, { user: req.user });
return handleResultResponse(result, result.count, params, res);
} catch (error) {
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
}
},
};
module.exports = generateControllers(valueService, extraControllers, controllerOptions);

View File

@ -0,0 +1,42 @@
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 valueController = require('./value.controller');
routes.get('/values',
//isLoggedUser,
/*FieldMiddleware.middleware({
invalidFields: ['user', 'createdAt']
}),*/
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
valueController.find
);
routes.get('/values/:id',
//isLoggedUser,
FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),
valueController.findOne
);
/*routes.get('/values/:id/speakers',
//isLoggedUser,
FieldMiddleware.middleware({
invalidFields: ['createdAt']
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
valueController.findSpeakers
);*/
module.exports = routes;

View File

@ -0,0 +1,12 @@
/* global Venue */
'use strict';
const _ = require('lodash');
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
const Sequelize = require('sequelize');
const models = require('../../core/models');
const extraMethods = {
};
module.exports = generateService(models.Value, extraMethods);