a
This commit is contained in:
parent
8ae7aac71b
commit
49822f6737
@ -25,7 +25,9 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const defaultControllers = {
|
const defaultControllers = {
|
||||||
|
|
||||||
find: (config) => {
|
find: (config) => {
|
||||||
|
|
||||||
return async (req, res, next) => {
|
return async (req, res, next) => {
|
||||||
config = config || {
|
config = config || {
|
||||||
scopes: [],
|
scopes: [],
|
||||||
@ -44,8 +46,6 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
|
|||||||
findOne: (config) => {
|
findOne: (config) => {
|
||||||
return async (req, res, next) => {
|
return async (req, res, next) => {
|
||||||
const params = extractParamsFromRequest(req, res, _options.params.findOne);
|
const params = extractParamsFromRequest(req, res, _options.params.findOne);
|
||||||
console.log('------------------------------------PARAMS');
|
|
||||||
console.log(params);
|
|
||||||
try {
|
try {
|
||||||
const result = await service.fetchOne(params, buildContext(req, config));
|
const result = await service.fetchOne(params, buildContext(req, config));
|
||||||
return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK);
|
return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK);
|
||||||
|
|||||||
@ -9,31 +9,6 @@ const MODULE_NAME = '[entity.controller]';
|
|||||||
|
|
||||||
const controllerOptions = { MODULE_NAME };
|
const controllerOptions = { MODULE_NAME };
|
||||||
const extraControllers = {
|
const extraControllers = {
|
||||||
|
|
||||||
findColleges: async (req, res, next) => {
|
|
||||||
|
|
||||||
const params = extractParamsFromRequest(req, res, {});
|
|
||||||
console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-params');
|
|
||||||
console.log(params);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const result = await entityService.fetch(params, { user: req.user, type: 'college' });
|
|
||||||
return handleResultResponse(result, result.count, params, res);
|
|
||||||
} catch (error) {
|
|
||||||
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
findPartners: async (req, res, next) => {
|
|
||||||
const params = extractParamsFromRequest(req, res, {});
|
|
||||||
try {
|
|
||||||
const result = await entityService.fetch(params, { user: req.user, type: 'partner' });
|
|
||||||
return handleResultResponse(result, result.count, params, res);
|
|
||||||
} catch (error) {
|
|
||||||
handleErrorResponse(MODULE_NAME, 'findNext', error, res);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = generateControllers(entityService, extraControllers, controllerOptions);
|
module.exports = generateControllers(entityService, extraControllers, controllerOptions);
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
const Sequelize = require('sequelize');
|
||||||
|
|
||||||
module.exports = function (sequelize, DataTypes) {
|
module.exports = function (sequelize, DataTypes) {
|
||||||
const Entity = sequelize.define('Entity', {
|
const Entity = sequelize.define('Entity', {
|
||||||
id: {
|
id: {
|
||||||
@ -13,11 +15,23 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
type: DataTypes.STRING(45),
|
type: DataTypes.STRING(45),
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
default: 'draft',
|
default: 'draft',
|
||||||
|
},
|
||||||
|
contact_person: {
|
||||||
|
type: DataTypes.STRING,
|
||||||
|
},
|
||||||
|
contact_email: {
|
||||||
|
type: DataTypes.STRING,
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
tableName: 'entities',
|
tableName: 'entities',
|
||||||
freezeTableName: true,
|
freezeTableName: true,
|
||||||
timestamps: true,
|
timestamps: true,
|
||||||
|
|
||||||
|
defaultScope: {
|
||||||
|
where: {
|
||||||
|
state: 'publish'
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Entity.associate = function (models) {
|
Entity.associate = function (models) {
|
||||||
@ -29,5 +43,29 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
Entity.User = Entity.hasMany(models.User, { foreignKey: 'entityId' });
|
Entity.User = Entity.hasMany(models.User, { foreignKey: 'entityId' });
|
||||||
Entity.EventsReservations = Entity.hasMany(models.EventReservation, { foreignKey: 'entityId', as: 'reservations' });
|
Entity.EventsReservations = Entity.hasMany(models.EventReservation, { foreignKey: 'entityId', as: 'reservations' });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Entity.addScope('onlyColleges', () => {
|
||||||
|
return {
|
||||||
|
include: [{ model: sequelize.models.EntityType,
|
||||||
|
as: 'types',
|
||||||
|
where: {alias: 'college'},
|
||||||
|
attributes: [],
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Entity.addScope('onlyPartners', () => {
|
||||||
|
return {
|
||||||
|
include: [{
|
||||||
|
model: sequelize.models.EntityType,
|
||||||
|
as: 'types',
|
||||||
|
where: { alias: 'partner' },
|
||||||
|
attributes: [],
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return Entity;
|
return Entity;
|
||||||
};
|
};
|
||||||
@ -10,27 +10,45 @@ const SortMiddleware = require('../../middlewares/sort');
|
|||||||
//const entityValidation = require('./entity.validations');
|
//const entityValidation = require('./entity.validations');
|
||||||
const entityController = require('./entity.controller');
|
const entityController = require('./entity.controller');
|
||||||
|
|
||||||
routes.get ('/entities',
|
|
||||||
isLoggedUser,
|
const generalInvalidFields = [
|
||||||
PaginateMiddleware.middleware(),
|
'state',, 'createdAt', 'updatedAt'
|
||||||
entityController.find);
|
];
|
||||||
|
|
||||||
|
|
||||||
|
routes.get('/entities',
|
||||||
|
//isLoggedUser,
|
||||||
|
FieldMiddleware.middleware({
|
||||||
|
invalidFields: generalInvalidFields
|
||||||
|
}),
|
||||||
|
PaginateMiddleware.middleware(),
|
||||||
|
SortMiddleware.middleware({ default: "name" }),
|
||||||
|
entityController.find({
|
||||||
|
scopes: ['defaultScope'],
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
routes.get ('/entities/colleges',
|
routes.get ('/entities/colleges',
|
||||||
// PaginateMiddleware.middleware(),
|
// PaginateMiddleware.middleware(),
|
||||||
FieldMiddleware.middleware({
|
FieldMiddleware.middleware({
|
||||||
invalidFields: ['state', 'createdAt', 'updatedAt']
|
invalidFields: generalInvalidFields
|
||||||
}),
|
}),
|
||||||
SortMiddleware.middleware({ default: "name" }),
|
SortMiddleware.middleware({ default: "name" }),
|
||||||
entityController.findColleges
|
entityController.find({
|
||||||
|
scopes: ['defaultScope', 'onlyColleges'],
|
||||||
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get ('/entities/partners',
|
routes.get ('/entities/partners',
|
||||||
// PaginateMiddleware.middleware(),
|
// PaginateMiddleware.middleware(),
|
||||||
FieldMiddleware.middleware({
|
FieldMiddleware.middleware({
|
||||||
invalidFields: ['state', 'createdAt', 'updatedAt']
|
invalidFields: generalInvalidFields
|
||||||
|
}),
|
||||||
|
SortMiddleware.middleware({ default: "name" }),
|
||||||
|
entityController.find({
|
||||||
|
scopes: ['defaultScope', 'onlyPartners'],
|
||||||
}),
|
}),
|
||||||
SortMiddleware.middleware({ default: "name" }),
|
|
||||||
entityController.findPartners
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,28 +5,33 @@ const _ = require('lodash');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
|
||||||
|
|
||||||
|
const entityComposer = (entity, context) => {
|
||||||
|
|
||||||
|
delete entity.contact_person;
|
||||||
|
delete entity.contact_email;
|
||||||
|
|
||||||
|
return Object.assign({},
|
||||||
|
entity,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
|
|
||||||
fetch: async (params, context) => {
|
afterFetchAll: (result, params, context) => {
|
||||||
const type = context.type;
|
|
||||||
const findOptions = parseParamsToFindOptions(params);
|
|
||||||
|
|
||||||
findOptions.include.push({
|
if (!result.count) {
|
||||||
model: models.EntityType,
|
return result;
|
||||||
as: 'types',
|
|
||||||
where: { alias: type },
|
|
||||||
attributes: [],
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
return await models.Entity.findAll(findOptions);
|
|
||||||
} catch (error) {
|
|
||||||
throw error;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
let rows = result.rows.map(row => row.toJSON());
|
||||||
|
rows = rows.map(entity => entityComposer(entity, context));
|
||||||
|
|
||||||
|
return {
|
||||||
|
count: rows.length,
|
||||||
|
rows: rows
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
'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');
|
||||||
|
|||||||
@ -13,10 +13,11 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
end_available_date: {
|
end_available_date: {
|
||||||
type: DataTypes.DATE,
|
type: DataTypes.DATE,
|
||||||
},
|
},
|
||||||
|
//LO DA EL VENUE DEL EVENTO, Y LO COPIAMOS PARA NO ESTAR CONSULTANDOLO
|
||||||
gmt: {
|
gmt: {
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
defaultValue: 1,
|
defaultValue: 1,
|
||||||
},
|
},
|
||||||
state: {
|
state: {
|
||||||
type: DataTypes.STRING,
|
type: DataTypes.STRING,
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
@ -35,6 +36,7 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
},
|
},
|
||||||
multiple_limit: {
|
multiple_limit: {
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
|
defaultValue: 0,
|
||||||
},
|
},
|
||||||
description: {
|
description: {
|
||||||
type: DataTypes.STRING,
|
type: DataTypes.STRING,
|
||||||
|
|||||||
@ -68,20 +68,6 @@ SELECT UUID() as ID, speakerID as eventID, 'speaker', videoId as multimediafilei
|
|||||||
FROM lqdvi.`video-speaker`
|
FROM lqdvi.`video-speaker`
|
||||||
where videoId in (select id from lqdvi_v2.multimedia_files);
|
where videoId in (select id from lqdvi_v2.multimedia_files);
|
||||||
|
|
||||||
//METEMOS LOS DETALLES DE LOS CONGRESOS AGENDAS DE TODOS LOS CONGRESOS
|
|
||||||
Cargar
|
|
||||||
script-carga-bd-events_details.sql
|
|
||||||
|
|
||||||
|
|
||||||
update lqdvi_v2.events_details
|
|
||||||
set type = 'speaker'
|
|
||||||
where description like'%conference-speaker%';
|
|
||||||
|
|
||||||
update lqdvi_v2.events_details
|
|
||||||
set type = 'info'
|
|
||||||
where type is null;
|
|
||||||
|
|
||||||
|
|
||||||
//Modificamos la tabla para crear otro campo autoinc que nos rellene el order
|
//Modificamos la tabla para crear otro campo autoinc que nos rellene el order
|
||||||
/*
|
/*
|
||||||
insert into lqdvi_v2.events_schedules (id, eventId, speakerId, description, createdAt, updatedAt)
|
insert into lqdvi_v2.events_schedules (id, eventId, speakerId, description, createdAt, updatedAt)
|
||||||
@ -98,6 +84,63 @@ insert into lqdvi_v2.events_schedules (id, eventId, speakerId, order, descriptio
|
|||||||
select UUID() as ID, conferenceId, speakerId, 0, 'relacion conference-speaker modelo anterior', now(), now() FROM lqdvi.`conference-speaker`;
|
select UUID() as ID, conferenceId, speakerId, 0, 'relacion conference-speaker modelo anterior', now(), now() FROM lqdvi.`conference-speaker`;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//METEMOS LOS DETALLES DE LOS CONGRESOS AGENDAS DE TODOS LOS CONGRESOS
|
||||||
|
Cargar
|
||||||
|
script-carga-bd-events_details.sql
|
||||||
|
|
||||||
|
|
||||||
|
update lqdvi_v2.events_details
|
||||||
|
set type = 'speaker'
|
||||||
|
where description like'%conference-speaker%';
|
||||||
|
|
||||||
|
update lqdvi_v2.events_details
|
||||||
|
set type = 'info'
|
||||||
|
where type is null;
|
||||||
|
|
||||||
|
|
||||||
|
//RESERVAS-INVITACIONES
|
||||||
|
Crear campo entityname (varchar(255)) en tabla events_reservations
|
||||||
|
|
||||||
|
insert into lqdvi_v2.events_reservations
|
||||||
|
(id, init_available_date, end_available_date, gmt, state,
|
||||||
|
assistants, confirmed, allow_multiple, multiple_limit,
|
||||||
|
description, lqdvi_v2.events_reservations.code, color,
|
||||||
|
allow_overflow, overflow_event_reservationID, marketing_list,
|
||||||
|
createdAt, updatedAt, userID,
|
||||||
|
entityId, eventid, entityname)
|
||||||
|
|
||||||
|
SELECT b.id, init_date, end_date, gmt, status,
|
||||||
|
assistants, confirmed, 0, 0,
|
||||||
|
b.name as name_invitation, invitation_code, color,
|
||||||
|
0, null, marketinglist, now(), now(), '0939bb2a-d33d-4290-ac81-fc9faa1c015e',
|
||||||
|
null, null, a.name
|
||||||
|
|
||||||
|
FROM lqdvi.partner a
|
||||||
|
left join lqdvi.level b on (b.partnerId = a.id);
|
||||||
|
|
||||||
|
|
||||||
|
//INSERTAMOS LAS ENTIDADES
|
||||||
|
insert into lqdvi_v2.entities
|
||||||
|
(id, name, state, createdAt, updatedAt, contact_person, contact_email )
|
||||||
|
SELECT UUID() as ID, name, 'ff', now(), now(), contact_name, contact_email
|
||||||
|
FROM lqdvi.partner;
|
||||||
|
|
||||||
|
//ASIGNAMOS QUE SON PARTNERS
|
||||||
|
insert into lqdvi_v2.entities_entities_types
|
||||||
|
(entityid, typeid, createdAt, updatedAt)
|
||||||
|
select id, '32d6306a-aa02-11e9-a553-000c295f0f58', now(), now()
|
||||||
|
from lqdvi_v2.entities
|
||||||
|
where state = 'ff';
|
||||||
|
|
||||||
|
update lqdvi_v2.entities
|
||||||
|
set state = 'publish'
|
||||||
|
where state = 'ff';
|
||||||
|
|
||||||
|
|
||||||
|
//ENLAZAMOS CON LAS RESERVAS
|
||||||
|
|
||||||
|
|
||||||
//Metemos las preguntas de los congresos
|
//Metemos las preguntas de los congresos
|
||||||
insert into lqdvi_v2.events_questions (id, eventId, speakerId, anonimous, answered, discared, answer, userId, createdAt, updatedAt)
|
insert into lqdvi_v2.events_questions (id, eventId, speakerId, anonimous, answered, discared, answer, userId, createdAt, updatedAt)
|
||||||
SELECT UUID() as ID, conferenceId, speakerId, anonymous, answered, discared, content, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', created, now() FROM lqdvi.question;
|
SELECT UUID() as ID, conferenceId, speakerId, anonymous, answered, discared, content, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', created, now() FROM lqdvi.question;
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
LOCK TABLES `entities_types` WRITE;
|
LOCK TABLES `entities_types` WRITE;
|
||||||
/*!40000 ALTER TABLE `entities_types` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `entities_types` DISABLE KEYS */;
|
||||||
INSERT INTO `entities_types` VALUES ('2617e44a-a303-11e9-94b5-000c295f0f58','ENTIDADES PATROCINADORAS Y COLABORADORAS','2019-07-02 12:00:00','2019-07-02 12:00:00','partner'),('76b17163-a167-11e9-a57c-000c295f0f58','ENTIDADES EDUCATIVAS COLABORADORAS','2019-07-08 12:02:15','2019-07-08 12:02:15','college');
|
INSERT INTO `entities_types` VALUES ('32d6306a-aa02-11e9-a553-000c295f0f58','ENTIDADES PATROCINADORAS COLABORADORAS','partner','2019-07-08 12:02:15','2019-07-08 12:02:15'),('76b17163-a167-11e9-a57c-000c295f0f58','ENTIDADES EDUCATIVAS COLABORADORAS','college','2019-07-08 12:02:15','2019-07-08 12:02:15');
|
||||||
/*!40000 ALTER TABLE `entities_types` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `entities_types` ENABLE KEYS */;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
@ -34,4 +34,4 @@ UNLOCK TABLES;
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
-- Dump completed on 2019-07-10 13:10:42
|
-- Dump completed on 2019-07-19 10:52:18
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user