.
This commit is contained in:
parent
ebc09b8079
commit
c3d08fb828
BIN
modelo.mwb
Normal file
BIN
modelo.mwb
Normal file
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const httpStatus = require('http-status');
|
||||||
const generateControllers = require('../../core/controllers');
|
const generateControllers = require('../../core/controllers');
|
||||||
const eventService = require('./event.service');
|
const eventService = require('./event.service');
|
||||||
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
|
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
|
||||||
@ -45,8 +46,21 @@ const extraControllers = {
|
|||||||
const params = extractParamsFromRequest(req, res, {});
|
const params = extractParamsFromRequest(req, res, {});
|
||||||
console.log('crear inscripcionnnnnnnnnnnnnnnnnnnnnnnnnnnn');
|
console.log('crear inscripcionnnnnnnnnnnnnnnnnnnnnnnnnnnn');
|
||||||
|
|
||||||
|
return handleResultResponse(result, result.count, params, res);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
findOne: async (req, res, next) => {
|
||||||
|
const params = extractParamsFromRequest(req, res, { includeAll: false });
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await eventService.fetchOne(params, { user: req.user });
|
||||||
|
return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK);
|
||||||
|
} catch (error) {
|
||||||
|
handleErrorResponse(MODULE_NAME, 'findOne', error, res)
|
||||||
}
|
}
|
||||||
//findComments: as
|
},
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -93,25 +93,26 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
|
|
||||||
Event.associate = function (models) {
|
Event.associate = function (models) {
|
||||||
Event.OverflowEvent = Event.belongsTo(models.Event, {
|
Event.OverflowEvent = Event.belongsTo(models.Event, {
|
||||||
as: 'EventToEvent',
|
as: 'overflowEvent',
|
||||||
foreignKey: 'overflow_eventId' });
|
foreignKey: 'overflow_eventId' });
|
||||||
Event.Type = Event.belongsTo(models.EventType, { foreignKey: 'typeId' });
|
Event.Type = Event.belongsTo(models.EventType, { foreignKey: 'typeId', as: "type" });
|
||||||
Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId' });
|
Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId', as: "user" });
|
||||||
Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId' });
|
Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId', as: "venue" });
|
||||||
|
|
||||||
Event.Schedule = Event.hasMany(models.EventSchedule, { foreignKey: 'eventId' });
|
Event.Schedule = Event.hasMany(models.EventSchedule, { foreignKey: 'eventId', as: "schedule" });
|
||||||
|
|
||||||
Event.Comments = Event.hasMany(models.Comment, {
|
Event.Comments = Event.hasMany(models.Comment, {
|
||||||
foreignKey: 'entityId',
|
foreignKey: 'entityId',
|
||||||
|
as: "comments"
|
||||||
});
|
});
|
||||||
|
|
||||||
Event.Multimedias = Event.hasMany(models.Multimedia, {
|
Event.Multimedias = Event.hasMany(models.Multimedia, {
|
||||||
foreignKey: 'entityId',
|
foreignKey: 'entityId',
|
||||||
as: { singular: 'Multimedia', plural: 'Multimedias' }});
|
as: { singular: 'multimedia', plural: 'multimedias' }});
|
||||||
|
|
||||||
Event.Reservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId' });
|
Event.Reservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId', as: "reservations" });
|
||||||
Event.Inscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId' });
|
Event.Inscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId', as: "inscriptions" });
|
||||||
Event.Questions = Event.hasMany(models.EventQuestion, { foreignKey: 'eventId' });
|
Event.Questions = Event.hasMany(models.EventQuestion, { foreignKey: 'eventId', as: "questions" });
|
||||||
};
|
};
|
||||||
|
|
||||||
return Event;
|
return Event;
|
||||||
|
|||||||
@ -44,13 +44,22 @@ const extraMethods = {
|
|||||||
|
|
||||||
// Incluir
|
// Incluir
|
||||||
findOptions.include.push({
|
findOptions.include.push({
|
||||||
model: models.EventSchedule, include: {model: models.Speaker, attributes: ['id', 'name', 'description']}
|
model: models.EventSchedule,
|
||||||
|
as: 'schedule',
|
||||||
|
include: {
|
||||||
|
model: models.Speaker,
|
||||||
|
as: 'speaker',
|
||||||
|
attributes: ['id', 'name', 'description']
|
||||||
|
}
|
||||||
});
|
});
|
||||||
findOptions.include.push({
|
findOptions.include.push({
|
||||||
model: models.EventType, attributes: ['name', 'tittle'],
|
model: models.EventType,
|
||||||
|
as: 'type',
|
||||||
|
attributes: ['name', 'title'],
|
||||||
});
|
});
|
||||||
findOptions.include.push({
|
findOptions.include.push({
|
||||||
model: models.Venue,
|
model: models.Venue,
|
||||||
|
as: 'venue'
|
||||||
});
|
});
|
||||||
|
|
||||||
// findOptions.include.push({
|
// findOptions.include.push({
|
||||||
@ -70,7 +79,47 @@ const extraMethods = {
|
|||||||
} catch(error) {
|
} catch(error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
fetchOne: async (params, context) => {
|
||||||
|
const findOptions = parseParamsToFindOptions(params);
|
||||||
|
|
||||||
|
// Incluir
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.EventSchedule,
|
||||||
|
as: 'schedule',
|
||||||
|
include: {
|
||||||
|
model: models.Speaker,
|
||||||
|
as: 'speaker',
|
||||||
|
attributes: ['id', 'name', 'description']
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.EventType,
|
||||||
|
as: 'type',
|
||||||
|
attributes: ['name', 'title'],
|
||||||
|
});
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.Venue,
|
||||||
|
as: 'venue'
|
||||||
|
});
|
||||||
|
|
||||||
|
findOptions.include.push({
|
||||||
|
model: models.EventInscription,
|
||||||
|
as: 'inscriptions'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
findOptions.where = Object.assign({},
|
||||||
|
findOptions.where, {
|
||||||
|
state: 'publish'
|
||||||
|
});
|
||||||
|
|
||||||
|
return await models.Event.findOne({
|
||||||
|
where: findOptions.where,
|
||||||
|
include: findOptions.include
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = generateService(models.Event, extraMethods);
|
module.exports = generateService(models.Event, extraMethods);
|
||||||
@ -32,8 +32,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
EventSchedule.associate = function (models) {
|
EventSchedule.associate = function (models) {
|
||||||
EventSchedule.Event = EventSchedule.belongsTo(models.Event, { foreignKey: 'eventId' });
|
EventSchedule.Event = EventSchedule.belongsTo(models.Event, { foreignKey: 'eventId', as: "event" });
|
||||||
EventSchedule.Speaker = EventSchedule.belongsTo(models.Speaker, {foreignKey: 'speakerId'});
|
EventSchedule.Speaker = EventSchedule.belongsTo(models.Speaker, {foreignKey: 'speakerId', as: "speaker"});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
name: {
|
name: {
|
||||||
type: DataTypes.STRING,
|
type: DataTypes.STRING,
|
||||||
},
|
},
|
||||||
tittle: {
|
title: {
|
||||||
type: DataTypes.STRING,
|
type: DataTypes.STRING,
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
@ -34,8 +34,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
EventInscription.associate = function (models) {
|
EventInscription.associate = function (models) {
|
||||||
EventInscription.Event = EventInscription.belongsTo(models.Event, { foreignKey: 'eventId' });
|
EventInscription.Event = EventInscription.belongsTo(models.Event, { foreignKey: 'eventId', as: 'event' });
|
||||||
EventInscription.User = EventInscription.belongsTo(models.User, { foreignKey: 'userId' });
|
EventInscription.User = EventInscription.belongsTo(models.User, { foreignKey: 'userId', as: 'user' });
|
||||||
EventInscription.UserValidate = EventInscription.belongsTo(models.User, { foreignKey: 'validateUserId' });
|
EventInscription.UserValidate = EventInscription.belongsTo(models.User, { foreignKey: 'validateUserId' });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Venue.associate = function (models) {
|
Venue.associate = function (models) {
|
||||||
Venue.Events = Venue.hasMany(models.Event, { foreignKey: 'venueId' });
|
Venue.Events = Venue.hasMany(models.Event, { foreignKey: 'venueId', as: 'events' });
|
||||||
};
|
};
|
||||||
|
|
||||||
return Venue;
|
return Venue;
|
||||||
|
|||||||
@ -55,15 +55,22 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
|
|
||||||
Speaker.associate = function (models) {
|
Speaker.associate = function (models) {
|
||||||
|
|
||||||
Speaker.SpeakerType = Speaker.belongsTo(models.SpeakerType, { foreignKey: 'typeId' });
|
Speaker.Type = Speaker.belongsTo(models.SpeakerType, { foreignKey: 'typeId', as: "type" });
|
||||||
Speaker.UserCreate = Speaker.belongsTo(models.User, { foreignKey: 'userId' });
|
Speaker.UserCreate = Speaker.belongsTo(models.User, { foreignKey: 'userId', as: "user" });
|
||||||
Speaker.Values = Speaker.belongsToMany(models.Value, {
|
Speaker.Values = Speaker.belongsToMany(models.Value, {
|
||||||
through: models.SpeakerValue,
|
through: models.SpeakerValue,
|
||||||
|
as: 'values',
|
||||||
foreignKey: 'speakerId'
|
foreignKey: 'speakerId'
|
||||||
});
|
});
|
||||||
|
|
||||||
Speaker.EventSchedules = Speaker.hasMany(models.EventSchedule, { foreignKey: 'speakerId' });
|
Speaker.Schedule = Speaker.hasMany(models.EventSchedule, { foreignKey: 'speakerId', as: "schedule" });
|
||||||
Speaker.EventQuestions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId' });
|
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions" });
|
||||||
|
|
||||||
|
Speaker.Multimedias = Speaker.hasMany(models.Multimedia, {
|
||||||
|
foreignKey: 'entityId',
|
||||||
|
as: { singular: 'multimedia', plural: 'multimedias' }
|
||||||
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Speaker.Multimedias = Speaker.belongsToMany(models.MultimediaFile, {
|
Speaker.Multimedias = Speaker.belongsToMany(models.MultimediaFile, {
|
||||||
through: models.MultimediaSpeaker,
|
through: models.MultimediaSpeaker,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user