This commit is contained in:
David Arranz 2019-07-21 20:48:19 +02:00
parent 3f8ed0c823
commit 1b50515227
5 changed files with 34 additions and 5 deletions

View File

@ -73,7 +73,6 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
create: (config) => { create: (config) => {
return async (req, res, next) => { return async (req, res, next) => {
try { try {
console.log(req.body);
const result = await service.create(req.body, buildContext(req, config)); const result = await service.create(req.body, buildContext(req, config));
return handleResultResponse(result, null, null, res, httpStatus.CREATED) return handleResultResponse(result, null, null, res, httpStatus.CREATED)
} catch (error) { } catch (error) {

View File

@ -51,7 +51,6 @@ function buildErrorResponse(nameController, nameMethod, error) {
} }
function getTotalCount(result) { function getTotalCount(result) {
const toType = function (obj) { const toType = function (obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase() return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
} }

View File

@ -164,7 +164,6 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) =>
fetchOne: async (params, context) => { fetchOne: async (params, context) => {
const findOptions = parseParamsToFindOptions(params); const findOptions = parseParamsToFindOptions(params);
const result = await model.scope(context.scopes).findOne(findOptions); const result = await model.scope(context.scopes).findOne(findOptions);
if (extraMethods.afterFetchOne) { if (extraMethods.afterFetchOne) {
return extraMethods.afterFetchOne(result, params, context); return extraMethods.afterFetchOne(result, params, context);
} else { } else {

View File

@ -2,7 +2,33 @@
const moment = require('moment'); const moment = require('moment');
const Sequelize = require('sequelize'); 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) { module.exports = function (sequelize, DataTypes) {
const Event = sequelize.define('Event', { const Event = sequelize.define('Event', {
id: { id: {
type: DataTypes.UUID, type: DataTypes.UUID,
@ -66,6 +92,12 @@ module.exports = function (sequelize, DataTypes) {
allowNull: false, allowNull: false,
defaultValue: 'draft' 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: { typeId: {
type: DataTypes.UUID, type: DataTypes.UUID,
foreignKey: true, foreignKey: true,

View File

@ -70,12 +70,12 @@ routes.get('/events/:id',
isLoggedUser, isLoggedUser,
FieldMiddleware.middleware({ FieldMiddleware.middleware({
invalidFields: generalInvalidFields invalidFields: generalInvalidFields
}), }),
(req, res, next) => { (req, res, next) => {
console.log(req.user.id); console.log(req.user.id);
return eventController.findOne({ return eventController.findOne({
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['includeInscription', req.user.id] }] scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['includeInscription', req.user.id] }]
})(res, req, next) })(req, res, next)
} }
); );