This commit is contained in:
David Arranz 2019-07-12 13:19:15 +02:00
parent 965a32a0e0
commit bd5e2b2c35
5 changed files with 33 additions and 14 deletions

View File

@ -21,7 +21,7 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false allowNull: false
}, },
entity: { /*entity: {
type: DataTypes.VIRTUAL, type: DataTypes.VIRTUAL,
get: function () { get: function () {
const name = this.get('entityName'); const name = this.get('entityName');
@ -45,7 +45,7 @@ module.exports = function (sequelize, DataTypes) {
return sequelize.models[modelName].findOne(id); return sequelize.models[modelName].findOne(id);
} }
} }*/
}, { }, {
indexes: [{ indexes: [{
unique: false, unique: false,

View File

@ -95,20 +95,23 @@ module.exports = function (sequelize, DataTypes) {
Event.OverflowEvent = Event.belongsTo(models.Event, { Event.OverflowEvent = Event.belongsTo(models.Event, {
as: 'EventToEvent', as: 'EventToEvent',
foreignKey: 'overflow_eventId' }); foreignKey: 'overflow_eventId' });
Event.EventType = Event.belongsTo(models.EventType, { foreignKey: 'typeId' }); Event.Type = Event.belongsTo(models.EventType, { foreignKey: 'typeId' });
Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId' }); Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId' });
Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId' }); Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId' });
Event.Schedule = Event.hasMany(models.EventSchedule, { foreignKey: 'eventId' }); Event.Schedule = Event.hasMany(models.EventSchedule, { foreignKey: 'eventId' });
Event.Comments = Event.hasMany(models.Comment, {
foreignKey: 'entityId',
});
Event.EventReservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId' }); Event.Multimedias = Event.hasMany(models.Multimedia, {
Event.EventInscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId' }); foreignKey: 'entityId',
Event.EventQuestions = Event.hasMany(models.EventQuestion, { foreignKey: 'eventId' }); as: { singular: 'Multimedia', plural: 'Multimedias' }});
//No puede haber clave foranea con entityId ya que podría repetirse ID con el caso de speakerId, un multimedia de un speaker
//Event.Multimedias = Event.hasMany(models.Multimedia, { foreignKey: 'eventId' });
Event.Reservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId' });
Event.Inscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId' });
Event.Questions = Event.hasMany(models.EventQuestion, { foreignKey: 'eventId' });
}; };
return Event; return Event;

View File

@ -57,7 +57,22 @@ routes.get('/events/:id',
routes.get('/events/:id/comments', routes.get('/events/:id/comments',
//isLoggedUser, //isLoggedUser,
//eventController.findComments (req, res, next) => {
req.params.association = 'Comments';
next();
},
eventController.find,
);
// Multimedias
routes.get('/events/:id/multimedias',
//isLoggedUser,
(req, res, next) => {
req.params.association = 'Multimedias';
next();
},
eventController.find,
); );

View File

@ -23,7 +23,7 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
}, },
entity: { /*entity: {
type: DataTypes.VIRTUAL, type: DataTypes.VIRTUAL,
get: function() { get: function() {
const name = this.get('entityName'); const name = this.get('entityName');
@ -46,9 +46,10 @@ module.exports = function (sequelize, DataTypes) {
break; break;
} }
return sequelize.models[modelName].findByPk(id); return sequelize.models[modelName].findByPk(id).then(function(result) { return result });
} }
}
}*/
}, { }, {
indexes: [{ indexes: [{
unique: false, unique: false,

View File

@ -30,7 +30,7 @@ routes.get('/values/:id',
routes.get('/values/:id/speakers', routes.get('/values/:id/speakers',
(req, res, next) => { (req, res, next) => {
req.params.association = 'speakers'; req.params.association = 'Speakers';
next(); next();
}, },
valueController.find, valueController.find,