This commit is contained in:
David Arranz 2019-09-27 12:22:09 +02:00
parent 3cf312d777
commit 0e2c17967e
6 changed files with 93 additions and 41 deletions

View File

@ -14,6 +14,7 @@ const CDN_PATHS = {
SPEAKERS: "speakers/",
WALLPAPERS: "wallpapers/",
XLSX: "xlsx/",
PARTNERS: "partners/",
};
const dummyMedia = encodeURI(`${assetsUrl}/defaultProfile.png`);
@ -39,6 +40,9 @@ const getCDNMediaUrl = (mediaUri) => {
const getCDNCityMediaUrl = (cityName) => encodeURI(`${assetsUrl}/${CDN_PATHS.CITIES}/${cityName}.jpg`);
const getCDNCurrentPartnersJSON = encodeURI(`${assetsUrl}/${CDN_PATHS.PARTNERS}partners_current.json`);
const getCDNPastPartnersJSON = encodeURI(`${assetsUrl}/${CDN_PATHS.PARTNERS}partners_past.json`);
const getCDNPath = (type = '') => {
var cdnPath = '';
switch (type) {
@ -57,6 +61,10 @@ const getCDNPath = (type = '') => {
cdnPath = CDN_PATHS.XLSX;
break;
case 'partners':
cdnPath = CDN_PATHS.PARTNERS;
break;
default:
var _date = new Date();
cdnPath = _date.getFullYear() + '/' + (_date.getMonth() + 1) + '/';
@ -94,5 +102,7 @@ module.exports = {
getCDNMediaUrl,
getCDNPath,
getCDNFilenameWithPath,
getCDNCurrentPartnersJSON,
getCDNPastPartnersJSON,
getUniqueName
}

View File

@ -11,8 +11,8 @@ module.exports = function (sequelize, DataTypes) {
},
phone: {
type: DataTypes.STRING,
unique: true
// allowNull: false, //Tiene que poderse dar de alta usuarios solo con el correo electronico para que siga funcionando las invitaciones por web como hasta ahora
unique: true,
allowNull: true, //Tiene que poderse dar de alta usuarios solo con el correo electronico para que siga funcionando las invitaciones por web como hasta ahora
},
email: {
type: DataTypes.STRING,

View File

@ -4,26 +4,26 @@ const Sequelize = require('sequelize');
moment.locale('es');
const getStateCode = (event) => {
var currentDate = moment().utc(),
initDate = moment.utc(event.ini_date),
endDate = moment.utc(event.end_date),
init_availableDate = moment.utc(event.init_available_date),
end_availableDate = moment.utc(event.end_available_date);
var currentDate = moment(),
initDate = moment(event.init_date),
endDate = moment(event.end_date),
init_availableDate = moment(event.init_available_date),
end_availableDate = moment(event.end_available_date);
if (moment(currentDate).isBetween(initDate, endDate)) {
if (currentDate.isBetween(initDate, endDate)) {
return 'current_event';
} else {
if (moment(endDate).isBefore(currentDate)) {
if (endDate.isBefore(currentDate)) {
return 'closed_event';
} else {
if (moment(currentDate).isBefore(init_availableDate)){
if (currentDate.isBefore(init_availableDate)){
return 'future_registrations'
} else {
if (moment(currentDate).isBetween(init_availableDate, end_availableDate)) {
if (currentDate.isBetween(init_availableDate, end_availableDate)) {
return (event.sold_out == 1) ? 'waitinglist_open' : 'registrations_open';
}
else {
if (moment(currentDate).isAfter(end_availableDate))
if (currentDate.isAfter(end_availableDate))
return 'closed_registrations'
else
return 'N/A';
@ -34,28 +34,27 @@ const getStateCode = (event) => {
};
};
const getStateText = (event) => {
var currentDate = moment().utc(),
initDate = moment.utc(event.ini_date),
endDate = moment.utc(event.end_date),
init_availableDate = moment.utc(event.init_available_date),
end_availableDate = moment.utc(event.end_available_date);
var currentDate = moment(),
initDate = moment(event.init_date),
endDate = moment(event.end_date),
init_availableDate = moment(event.init_available_date),
end_availableDate = moment(event.end_available_date);
if (moment(currentDate).isBetween(initDate, endDate)) {
if (currentDate.isBetween(initDate, endDate)) {
return 'Congreso en curso';
} else {
if (moment(endDate).isBefore(currentDate)) {
if (endDate.isBefore(currentDate)) {
return 'Congreso finalizado';
} else {
if (moment(currentDate).isBefore(init_availableDate)) {
return 'Inscripciones a partir del ' + moment(init_availableDate).format('D [de] MMMM');
if (currentDate.isBefore(init_availableDate)) {
return 'Inscripciones a partir del ' + init_availableDate.format('D [de] MMMM');
} else {
if (moment(currentDate).isBetween(init_availableDate, end_availableDate)) {
if (currentDate.isBetween(init_availableDate, end_availableDate)) {
return (event.sold_out == 1) ? 'Inscripciones abiertas a lista de espera' : 'Inscripciones abiertas';
}
else {
if (moment(currentDate).isAfter(end_availableDate))
if (currentDate.isAfter(end_availableDate))
return 'Inscripciones cerradas'
else
return 'N/A';
@ -317,7 +316,7 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('next', {
where: {
init_date: {
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').utc()
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss')
}
},
});
@ -325,8 +324,8 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('today', {
where: {
init_date: {
[Sequelize.Op.gte]: moment().startOf('day'),
[Sequelize.Op.lt]: moment().add(1, 'days').startOf('day'),
[Sequelize.Op.gte]: moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'),
[Sequelize.Op.lt]: moment().add(1, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
}
}
});
@ -334,18 +333,36 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('current', {
where: {
init_date: {
[Sequelize.Op.lte]: moment().utc(),
[Sequelize.Op.lte]: moment().format('YYYY-MM-DD HH:mm:ss'),
},
end_date:{
[Sequelize.Op.gt]: moment().utc(),
[Sequelize.Op.gt]: moment().format('YYYY-MM-DD HH:mm:ss'),
},
}
});
Event.addScope('tomorrow', {
where: {
init_date: {
[Sequelize.Op.gte]: moment().add(1, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
[Sequelize.Op.lt]: moment().add(2, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
}
}
});
Event.addScope('yesterday', {
where: {
init_date: {
[Sequelize.Op.gte]: moment().add(-1, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
[Sequelize.Op.lt]: moment().add('day').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
}
}
});
Event.addScope('past', {
where: {
init_date: {
[Sequelize.Op.lt]: moment().startOf('day').utc()
[Sequelize.Op.lt]: moment().startOf('day').format('YYYY-MM-DD HH:mm:ss')
}
}
});
@ -353,10 +370,10 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('withOpenInscriptions', {
where: {
init_available_date: {
[Sequelize.Op.lte]: moment().utc()
[Sequelize.Op.lte]: moment().format('YYYY-MM-DD HH:mm:ss')
},
end_available_date: {
[Sequelize.Op.gt]: moment().utc()
[Sequelize.Op.gt]: moment().format('YYYY-MM-DD HH:mm:ss')
}
},
});

View File

@ -57,7 +57,7 @@ routes.get('/events/next',
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "init_date" }),
(req, res, next) => {
// console.log(moment().add(1, 'days').startOf('day').utc());
// console.log(moment().add(1, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss'));
return eventController.find({
scopes: ['defaultScope', 'next', 'includeVenue', 'includeMultimedias', { method: ['includeInscription', req.user.id] }],
})(req, res, next)
@ -78,6 +78,19 @@ routes.get('/events/past',
}),
);
routes.get('/events/yesterday',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-init_date" }),
eventController.find({
scopes: ['defaultScope', 'yesterday', 'includeVenue', 'includeMultimedias', 'includeDetails'],
}),
);
routes.get('/events/today',
isLoggedUser,
FieldMiddleware.middleware({
@ -90,6 +103,18 @@ routes.get('/events/today',
}),
);
routes.get('/events/tomorrow',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "-init_date" }),
eventController.find({
scopes: ['defaultScope', 'tomorrow', 'includeVenue', 'includeMultimedias', 'includeDetails'],
}),
);
routes.get('/events/current',
isLoggedUser,
FieldMiddleware.middleware({

View File

@ -27,7 +27,7 @@ const ReservationInputType = Joi.object().keys({
const EventQuestionInputType = Joi.object().keys({
//eventId: Joi.string().required(),
speakerId: Joi.string().required(),
answer: Joi.string().required(),
question: Joi.string().required(),
});
module.exports = {

View File

@ -10,8 +10,12 @@ module.exports = function (sequelize, DataTypes) {
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
description: {
type: DataTypes.STRING,
question: {
type: DataTypes.TEXT,
allowNull: true
},
answer: {
type: DataTypes.TEXT,
},
anonimous: {
type: DataTypes.BOOLEAN,
@ -25,10 +29,6 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
answer: {
type: DataTypes.TEXT,
allowNull: true
},
}, {
tableName: 'events_questions',
freezeTableName: true,