Merge branch 'master' of wopr.rodax-software.com:lqdvi/app2-api
This commit is contained in:
commit
217d67d810
@ -71,16 +71,30 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
|
||||
}
|
||||
}
|
||||
},
|
||||
/*
|
||||
create: async (req, res, next) => {
|
||||
try {
|
||||
console.log(req.body);
|
||||
const result = await service.create(req.body, buildContext(req, res));
|
||||
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
|
||||
} catch (error) {
|
||||
handleErrorResponse(_options.MODULE_NAME, 'create', error, res)
|
||||
}
|
||||
},
|
||||
*/
|
||||
|
||||
create: (config) => {
|
||||
console.log('CREAAAAAAAAAAAAAAATE');
|
||||
return async (req, res, next) => {
|
||||
try {
|
||||
console.log('CREAAAAAAAAAAAAAAATE22222');
|
||||
const result = await service.create(req.body, buildContext(req, config));
|
||||
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
|
||||
} catch (error) {
|
||||
console.log('CREAAAAAAAAAAAAAAAT333333333333333332');
|
||||
return handleErrorResponse(_options.MODULE_NAME, 'create', error, res)
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
update: (config) => {
|
||||
|
||||
@ -126,17 +126,27 @@ const eventComposer = (event, context) => {
|
||||
};
|
||||
|
||||
let speakers = []
|
||||
if ((context.scopes) && (context.scopes.includes('includeSpeakers'))) {
|
||||
speakers = event.details.map((detail) => ({
|
||||
order: detail.order,
|
||||
...speakerComposer(detail.speaker, context),
|
||||
}))
|
||||
let details = []
|
||||
if ((context.scopes) && (context.scopes.includes('includeDetails'))) {
|
||||
|
||||
event.details.map((detail) => {
|
||||
if (detail.type == 'speaker')
|
||||
speakers.push({
|
||||
order: detail.order,
|
||||
...speakerComposer(detail.speaker, context),
|
||||
});
|
||||
if (detail.type == 'info')
|
||||
details.push({
|
||||
...detail,
|
||||
speaker: undefined,
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
return Object.assign({},
|
||||
event,
|
||||
{ multimedias: multimedias },
|
||||
{ details: undefined },
|
||||
{ details: details },
|
||||
{ speakers: speakers }
|
||||
)
|
||||
};
|
||||
|
||||
@ -122,7 +122,6 @@ const defaultOptions = {};
|
||||
|
||||
const generateService = (model, extraMethods = {}, options = defaultOptions) => {
|
||||
|
||||
|
||||
const defaultService = {
|
||||
fetchAssociation: async(params, context) => {
|
||||
|
||||
@ -201,6 +200,7 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) =>
|
||||
},
|
||||
|
||||
create: async (values, context) => {
|
||||
console.log('CREAAAAAAAAAAAAAAAAAAAAAAAAAATE44444');
|
||||
console.log(values);
|
||||
return await model.scope(context.scopes).create(values);
|
||||
},
|
||||
|
||||
@ -113,6 +113,19 @@ const extraControllers = {
|
||||
}
|
||||
},
|
||||
|
||||
findPartners: async (req, res, next) => {
|
||||
const params = extractParamsFromRequest(req, res, {});
|
||||
try {
|
||||
const result = await eventReservationService._getPartners(params.params.id);
|
||||
console.log('xxxxxx2');
|
||||
console.log(result)
|
||||
return handleResultResponse({ count: result }, null, params, res, httpStatus.OK);
|
||||
} catch (error) {
|
||||
console.log('xxxxxxxx3');
|
||||
return handleErrorResponse(MODULE_NAME, 'findPartners', error, res)
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
deleteInscription: async (req, res, next) => {
|
||||
const params = extractParamsFromRequest(req, res, {});
|
||||
|
||||
@ -234,14 +234,6 @@ module.exports = function (sequelize, DataTypes) {
|
||||
}
|
||||
});
|
||||
|
||||
Event.addScope('includeDetails', () => {
|
||||
return {
|
||||
include: [
|
||||
{ model: sequelize.models.EventDetail, as: 'details' }
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
Event.addScope('includeMultimedias', () => {
|
||||
return {
|
||||
include: [{
|
||||
@ -266,14 +258,11 @@ module.exports = function (sequelize, DataTypes) {
|
||||
});
|
||||
|
||||
|
||||
Event.addScope('includeSpeakers', () => {
|
||||
Event.addScope('includeDetails', () => {
|
||||
return {
|
||||
include: [{
|
||||
model: sequelize.models.EventDetail,
|
||||
as: 'details',
|
||||
where: {
|
||||
type: 'speaker'
|
||||
},
|
||||
required: false,
|
||||
include: [{
|
||||
model: sequelize.models.Speaker,
|
||||
|
||||
@ -10,6 +10,7 @@ const SortMiddleware = require('../../middlewares/sort');
|
||||
|
||||
//const entityValidation = require('./entity.validations');
|
||||
const eventController = require('./event.controller');
|
||||
const eventReservationController = require('./events_reservations.controller');
|
||||
const eventValidation = require('./event.validations');
|
||||
|
||||
const generalInvalidFields = [
|
||||
@ -29,11 +30,11 @@ routes.get('/events',
|
||||
(req, res, next) => {
|
||||
if (!req.body.city)
|
||||
return eventController.find({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
})(req, res, next)
|
||||
else
|
||||
return eventController.find({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['onlyOfCity', req.body.city] }]
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails', { method: ['onlyOfCity', req.body.city] }]
|
||||
})(req, res, next);
|
||||
}
|
||||
);
|
||||
@ -70,7 +71,7 @@ routes.get('/events/past', cacheSuccesses('24 hours'),
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -82,7 +83,7 @@ routes.get('/events/today',
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'today', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'today', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -94,7 +95,7 @@ routes.get('/events/current',
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -105,7 +106,7 @@ routes.get('/events/:id',
|
||||
}),
|
||||
(req, res, next) => {
|
||||
return eventController.findOne({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['includeInscription', req.user.id] }]
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails', { method: ['includeInscription', req.user.id] }]
|
||||
})(req, res, next)
|
||||
}
|
||||
);
|
||||
@ -265,15 +266,15 @@ routes.get('/tickets/:id/',
|
||||
routes.get('/admin/events',
|
||||
isAdministratorUser,
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
(req, res, next) => {
|
||||
if (!req.body.city)
|
||||
return eventController.find({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
})(req, res, next)
|
||||
else
|
||||
return eventController.find({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers', { method: ['onlyOfCity', req.body.city] }]
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails', { method: ['onlyOfCity', req.body.city] }]
|
||||
})(req, res, next);
|
||||
}
|
||||
);
|
||||
@ -283,7 +284,7 @@ routes.get('/admin/events/next',
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "init_available_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'next', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'next', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -292,7 +293,7 @@ routes.get('/admin/events/past',
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -301,7 +302,7 @@ routes.get('/admin/events/current',
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "-init_date" }),
|
||||
eventController.find({
|
||||
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
||||
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -309,11 +310,21 @@ routes.get('/admin/events/:id',
|
||||
isAdministratorUser,
|
||||
(req, res, next) => {
|
||||
return eventController.findOne({
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers']
|
||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails']
|
||||
})(req, res, next)
|
||||
}
|
||||
);
|
||||
|
||||
routes.get('/admin/events/:id/partners',
|
||||
isAdministratorUser,
|
||||
eventController.findPartners,
|
||||
);
|
||||
|
||||
|
||||
routes.post('/admin/reservations',
|
||||
// isAdministratorUser,
|
||||
// SchemaValidator(VenueValidation.VenueInputType, true),
|
||||
eventReservationController.create);
|
||||
|
||||
/*// Un ponente
|
||||
routes.get('/admin/speakers/:id',
|
||||
|
||||
@ -31,6 +31,9 @@ const extraMethods = {
|
||||
},
|
||||
|
||||
afterFetchOne: (result, params, context) => {
|
||||
console.log('----------------------------------------------');
|
||||
console.log(result);
|
||||
|
||||
if (result)
|
||||
result = result.toJSON();
|
||||
return eventComposer(result, context);
|
||||
|
||||
14
modules/events/events_reservations.controller.js
Normal file
14
modules/events/events_reservations.controller.js
Normal file
@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const eventReservationService = require('./events_reservations.service');
|
||||
|
||||
|
||||
// Module Name
|
||||
const MODULE_NAME = '[eventReservation.controller]';
|
||||
|
||||
const controllerOptions = { MODULE_NAME };
|
||||
const extraControllers = {};
|
||||
|
||||
module.exports = generateControllers(eventReservationService, extraControllers, controllerOptions);
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const Sequelize = require('sequelize');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const models = require('../../core/models');
|
||||
|
||||
@ -16,6 +17,14 @@ const extraMethods = {
|
||||
})
|
||||
},
|
||||
|
||||
_getPartners: (eventId) => {
|
||||
return models.EventReservation.findAll({
|
||||
attributes: [ [Sequelize.fn('DISTINCT', Sequelize.col('events_reservations.entityId'), Sequelize.col('events_reservations.eventId')), 'entities']],
|
||||
where: { eventId: eventId },
|
||||
include: [{ model: models.Entity }],
|
||||
})
|
||||
},
|
||||
|
||||
_updateConfirmedReservation: (id, confirmed) => {
|
||||
return new Promise(function (resolve, reject) {
|
||||
models.EventReservation.update(
|
||||
|
||||
@ -32,6 +32,7 @@ routes.get('/venues/:id/events',
|
||||
|
||||
*/
|
||||
routes.post('/venues/', SchemaValidator(VenueValidation.VenueInputType, true), venueController.create);
|
||||
routes.get('/venues/count' , venueController.count);
|
||||
//routes.put('/venues/:id', isAdministratorUser, venueController.update);
|
||||
//routes.delete('/venues/:id', isAdministratorUser, venueController.delete);
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/* global Venue */
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const models = require('../../core/models');
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user