Crear preguntas a los ponentes
This commit is contained in:
parent
aca096bf3d
commit
3e4e79fa08
@ -74,11 +74,13 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
|
||||
|
||||
create: (config) => {
|
||||
return async (req, res, next) => {
|
||||
const params = extractParamsFromRequest(req, res, _options.params.count);
|
||||
try {
|
||||
//Asignamos el usuario que crea el elemento
|
||||
req.body.userId = req.user.id;
|
||||
console.log('SERVICE CREATE ->', req.body);
|
||||
const result = await service.create(req.body, buildContext(req, config));
|
||||
const values = Object.assign({}, params.params, req.body);
|
||||
console.log('SERVICE CREATE ->', values);
|
||||
const result = await service.create(values, buildContext(req, config));
|
||||
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
|
||||
} catch (error) {
|
||||
return handleErrorResponse(_options.MODULE_NAME, 'create', error, res)
|
||||
|
||||
@ -76,7 +76,9 @@ module.exports = function (sequelize, DataTypes) {
|
||||
User.Devices = User.hasMany(models.UserDevice, { foreignKey: 'userId' });
|
||||
User.Comments = User.hasMany(models.Comment, { foreignKey: 'userId' });
|
||||
User.EventsReservations = User.hasMany(models.EventReservation, { foreignKey: 'userId' });
|
||||
User.EventsInscriptions = User.hasMany(models.EventInscription, { foreignKey: 'userId' });
|
||||
User.EventsInscriptions = User.hasMany(models.EventInscription, { foreignKey: 'userId' });
|
||||
User.Questions = User.hasMany(models.EventQuestion, { foreignKey: 'userId', as: "questions", required: false, });
|
||||
|
||||
// User.InscriptionsValidate = User.hasMany(models.EventIncription, { foreignkey: 'validateUserId'})
|
||||
//User.Reactions = User.hasMany(models.UserReaction, { foreignKey: 'UserId' });
|
||||
};
|
||||
|
||||
@ -35,7 +35,6 @@ const getStateCode = (event) => {
|
||||
};
|
||||
|
||||
|
||||
|
||||
const getStateText = (event) => {
|
||||
var currentDate = moment().utc(),
|
||||
initDate = moment.utc(event.ini_date),
|
||||
|
||||
@ -8,12 +8,11 @@ const PaginateMiddleware = require('../../middlewares/paginate');
|
||||
const FieldMiddleware = require('../../middlewares/fields');
|
||||
const SortMiddleware = require('../../middlewares/sort');
|
||||
|
||||
//const entityValidation = require('./entity.validations');
|
||||
const eventController = require('./event.controller');
|
||||
const eventInscriptionController = require('./events_inscriptions.controller');
|
||||
const eventReservationController = require('./events_reservations.controller');
|
||||
const eventQuestionController = require('./events_questions.controller');
|
||||
const eventValidation = require('./event.validations');
|
||||
//const moment = require('moment');
|
||||
|
||||
const generalInvalidFields = [
|
||||
'userId', 'createdAt', 'updatedAt',
|
||||
@ -22,8 +21,6 @@ const generalInvalidFields = [
|
||||
'multiple_limit', 'marketing_list',
|
||||
];
|
||||
|
||||
//moment.locale('es');
|
||||
|
||||
routes.get('/events',
|
||||
isLoggedUser,
|
||||
FieldMiddleware.middleware({
|
||||
@ -212,6 +209,13 @@ routes.post('/events/:id/inscriptions',
|
||||
eventController.createInscription
|
||||
);
|
||||
|
||||
// Hacer una pregunta
|
||||
routes.post('/events/:eventId/questions',
|
||||
isLoggedUser,
|
||||
SchemaValidator(eventValidation.EventQuestionInputType, true),
|
||||
eventQuestionController.create()
|
||||
);
|
||||
|
||||
// Borrar una inscripción
|
||||
routes.delete('/inscriptions/:id',
|
||||
isLoggedUser,
|
||||
|
||||
@ -24,16 +24,15 @@ const ReservationInputType = Joi.object().keys({
|
||||
end_available_date: Joi.date().optional(),
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
const EventsListOutputType = Joi.object().keys({
|
||||
id: Joi.string().required(),
|
||||
name: Joi.string().required(),
|
||||
description: Joi.string().required(),
|
||||
const EventQuestionInputType = Joi.object().keys({
|
||||
//eventId: Joi.string().required(),
|
||||
speakerId: Joi.string().required(),
|
||||
answer: Joi.string().required(),
|
||||
});
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
webInscriptionInputType,
|
||||
InscriptionInputType
|
||||
InscriptionInputType,
|
||||
ReservationInputType,
|
||||
EventQuestionInputType
|
||||
};
|
||||
|
||||
14
modules/events/events_questions.controller.js
Normal file
14
modules/events/events_questions.controller.js
Normal file
@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const eventQuestionService = require('./events_questions.service');
|
||||
|
||||
|
||||
// Module Name
|
||||
const MODULE_NAME = '[eventQuestion.controller]';
|
||||
|
||||
const controllerOptions = { MODULE_NAME };
|
||||
const extraControllers = {};
|
||||
|
||||
module.exports = generateControllers(eventQuestionService, extraControllers, controllerOptions);
|
||||
|
||||
45
modules/events/events_questions.model.js
Normal file
45
modules/events/events_questions.model.js
Normal file
@ -0,0 +1,45 @@
|
||||
'use strict';
|
||||
const moment = require('moment');
|
||||
const Sequelize = require('sequelize');
|
||||
moment.locale('es');
|
||||
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
const EventQuestion = sequelize.define('EventQuestion', {
|
||||
id: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
},
|
||||
description: {
|
||||
type: DataTypes.STRING,
|
||||
},
|
||||
anonimous: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false,
|
||||
},
|
||||
answered: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false,
|
||||
},
|
||||
discared: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false,
|
||||
},
|
||||
answer: {
|
||||
type: DataTypes.TEXT,
|
||||
allowNull: true
|
||||
},
|
||||
}, {
|
||||
tableName: 'events_questions',
|
||||
freezeTableName: true,
|
||||
timestamps: true,
|
||||
});
|
||||
|
||||
EventQuestion.associate = function (models) {
|
||||
EventQuestion.Event = EventQuestion.belongsTo(models.Event, { foreignKey: 'eventId' });
|
||||
EventQuestion.Speaker = EventQuestion.belongsTo(models.Speaker, { foreignKey: 'speakerId' });
|
||||
EventQuestion.UserCreate = EventQuestion.belongsTo(models.User, { foreignKey: 'userId' });
|
||||
};
|
||||
|
||||
return EventQuestion;
|
||||
};
|
||||
10
modules/events/events_questions.service.js
Normal file
10
modules/events/events_questions.service.js
Normal file
@ -0,0 +1,10 @@
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const models = require('../../core/models');
|
||||
|
||||
const extraMethods = {
|
||||
};
|
||||
|
||||
module.exports = generateService(models.EventQuestion, extraMethods);
|
||||
@ -38,7 +38,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
state: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
defaultValue: 'borrador'
|
||||
defaultValue: 'draft'
|
||||
},
|
||||
assistants: {
|
||||
type: DataTypes.INTEGER,
|
||||
|
||||
@ -41,7 +41,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
state: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
defaultValue: 'borrador'
|
||||
defaultValue: 'draft'
|
||||
},
|
||||
typeId: {
|
||||
type: DataTypes.UUID,
|
||||
@ -82,7 +82,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
});
|
||||
|
||||
Speaker.EventDetails = Speaker.hasMany(models.EventDetail, { foreignKey: 'speakerId', as: "eventdetails" });
|
||||
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions" });
|
||||
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions", required: false, });
|
||||
|
||||
//OJO antes de force comentar
|
||||
// OJO GENERA UN FOREIGN KEY Con eventos y habrá ID de otras entidades que no exitan en la tabla eventos, porque son post o speakers
|
||||
|
||||
@ -369,7 +369,7 @@ CREATE TABLE `events_reservations` (
|
||||
`init_available_date` datetime DEFAULT NULL,
|
||||
`end_available_date` datetime DEFAULT NULL,
|
||||
`gmt` int(11) DEFAULT '1',
|
||||
`state` varchar(255) NOT NULL DEFAULT 'borrador',
|
||||
`state` varchar(255) NOT NULL DEFAULT 'draft',
|
||||
`assistants` int(11) DEFAULT NULL,
|
||||
`confirmed` int(11) DEFAULT NULL,
|
||||
`sold_out` tinyint(1) DEFAULT '0',
|
||||
@ -602,7 +602,7 @@ CREATE TABLE `speakers` (
|
||||
`linkedin` varchar(255) DEFAULT NULL,
|
||||
`instagram` varchar(255) DEFAULT NULL,
|
||||
`web` varchar(255) DEFAULT NULL,
|
||||
`state` varchar(255) NOT NULL DEFAULT 'borrador',
|
||||
`state` varchar(255) NOT NULL DEFAULT 'draft',
|
||||
`typeId` char(36) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`createdAt` datetime NOT NULL,
|
||||
`updatedAt` datetime NOT NULL,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user