From fb0e8a2e216c4b7ff2e69b94277f96a7226e491c Mon Sep 17 00:00:00 2001 From: david Date: Tue, 9 Jul 2019 20:34:39 +0200 Subject: [PATCH] . --- helpers/service.helper.js | 7 +- modules/events/event.routes.js | 30 +++++++ modules/events/event.service.js | 12 +-- modules/speakers/speaker.controller.js | 16 ++++ modules/speakers/speaker.routes.js | 80 +++++++++++++++++++ modules/speakers/speaker.service.js | 12 +++ modules/values/value.controller.js | 26 ++++++ .../{values.model.js => value.model.js} | 0 modules/values/value.routes.js | 42 ++++++++++ modules/values/value.service.js | 12 +++ 10 files changed, 228 insertions(+), 9 deletions(-) create mode 100644 modules/speakers/speaker.controller.js create mode 100644 modules/speakers/speaker.routes.js create mode 100644 modules/speakers/speaker.service.js create mode 100644 modules/values/value.controller.js rename modules/values/{values.model.js => value.model.js} (100%) create mode 100644 modules/values/value.routes.js create mode 100644 modules/values/value.service.js diff --git a/helpers/service.helper.js b/helpers/service.helper.js index 891c8fa..b72262f 100644 --- a/helpers/service.helper.js +++ b/helpers/service.helper.js @@ -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 diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index b16e8d2..66276f8 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -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); diff --git a/modules/events/event.service.js b/modules/events/event.service.js index 73840f4..8d4c611 100644 --- a/modules/events/event.service.js +++ b/modules/events/event.service.js @@ -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 { diff --git a/modules/speakers/speaker.controller.js b/modules/speakers/speaker.controller.js new file mode 100644 index 0000000..eee2979 --- /dev/null +++ b/modules/speakers/speaker.controller.js @@ -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); + diff --git a/modules/speakers/speaker.routes.js b/modules/speakers/speaker.routes.js new file mode 100644 index 0000000..1d98bbe --- /dev/null +++ b/modules/speakers/speaker.routes.js @@ -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; \ No newline at end of file diff --git a/modules/speakers/speaker.service.js b/modules/speakers/speaker.service.js new file mode 100644 index 0000000..9b52dc8 --- /dev/null +++ b/modules/speakers/speaker.service.js @@ -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); \ No newline at end of file diff --git a/modules/values/value.controller.js b/modules/values/value.controller.js new file mode 100644 index 0000000..0df12eb --- /dev/null +++ b/modules/values/value.controller.js @@ -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); + diff --git a/modules/values/values.model.js b/modules/values/value.model.js similarity index 100% rename from modules/values/values.model.js rename to modules/values/value.model.js diff --git a/modules/values/value.routes.js b/modules/values/value.routes.js new file mode 100644 index 0000000..495cbe8 --- /dev/null +++ b/modules/values/value.routes.js @@ -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; \ No newline at end of file diff --git a/modules/values/value.service.js b/modules/values/value.service.js new file mode 100644 index 0000000..41973b4 --- /dev/null +++ b/modules/values/value.service.js @@ -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); \ No newline at end of file