diff --git a/core/controllers/index.js b/core/controllers/index.js index de2c73c..f07a821 100644 --- a/core/controllers/index.js +++ b/core/controllers/index.js @@ -73,7 +73,6 @@ const generateControllers = (service, extraControllers = {}, options = {}) => { create: (config) => { return async (req, res, next) => { try { - console.log(req.body); const result = await service.create(req.body, buildContext(req, config)); return handleResultResponse(result, null, null, res, httpStatus.CREATED) } catch (error) { diff --git a/helpers/controller.helper.js b/helpers/controller.helper.js index 81d73a2..5f28b74 100644 --- a/helpers/controller.helper.js +++ b/helpers/controller.helper.js @@ -51,7 +51,6 @@ function buildErrorResponse(nameController, nameMethod, error) { } function getTotalCount(result) { - const toType = function (obj) { return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase() } diff --git a/helpers/service.helper.js b/helpers/service.helper.js index acd0eae..50c6f5c 100644 --- a/helpers/service.helper.js +++ b/helpers/service.helper.js @@ -164,7 +164,6 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) => fetchOne: async (params, context) => { const findOptions = parseParamsToFindOptions(params); const result = await model.scope(context.scopes).findOne(findOptions); - if (extraMethods.afterFetchOne) { return extraMethods.afterFetchOne(result, params, context); } else { diff --git a/modules/events/event.model.js b/modules/events/event.model.js index d3b7e3b..afd5728 100644 --- a/modules/events/event.model.js +++ b/modules/events/event.model.js @@ -2,7 +2,33 @@ const moment = require('moment'); const Sequelize = require('sequelize'); +const getStateText = (conference) => { + + var currentDate = moment().utc(), + initDate = moment.utc(conference.ini_date), + endDate = moment.utc(conference.end_date), + init_availableDate = moment.utc(conference.init_available_date), + end_availableDate = moment.utc(conference.end_available_date), + isFull = (conference.confirmed > conference.assistans); + + if (moment(currentDate).isBetween(initDate, endDate)) { + return 'Congreso en curso'; + } else { + if (moment(endDate).isBefore(currentDate)) { + return 'Congreso finalizado'; + } else { + if (moment(currentDate).isBetween(init_availableDate, end_availableDate)) { + return isFull ? 'Inscripciones abiertas a lista de espera' : 'Inscripciones abiertas'; + } else { + return 'Inscripciones a partir del ' + moment(init_availableDate).format('ll'); + } + } + }; +}; + + module.exports = function (sequelize, DataTypes) { + const Event = sequelize.define('Event', { id: { type: DataTypes.UUID, @@ -66,6 +92,12 @@ module.exports = function (sequelize, DataTypes) { allowNull: false, defaultValue: 'draft' }, + stateText: { + type: Sequelize.VIRTUAL(Sequelize.STRING, ['init_date', 'end_date', 'init_available_date', 'end_available_date', 'assistants', 'confirmed']), + get: function () { + return getStateText(this); + }, + }, typeId: { type: DataTypes.UUID, foreignKey: true, diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index d81f07f..465a393 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -70,12 +70,12 @@ routes.get('/events/:id', isLoggedUser, FieldMiddleware.middleware({ invalidFields: generalInvalidFields - }), + }), (req, res, next) => { console.log(req.user.id); return eventController.findOne({ scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['includeInscription', req.user.id] }] - })(res, req, next) + })(req, res, next) } );