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) => {
|
create: (config) => {
|
||||||
|
console.log('CREAAAAAAAAAAAAAAATE');
|
||||||
return async (req, res, next) => {
|
return async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
|
console.log('CREAAAAAAAAAAAAAAATE22222');
|
||||||
const result = await service.create(req.body, buildContext(req, config));
|
const result = await service.create(req.body, buildContext(req, config));
|
||||||
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
|
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.log('CREAAAAAAAAAAAAAAAT333333333333333332');
|
||||||
return handleErrorResponse(_options.MODULE_NAME, 'create', error, res)
|
return handleErrorResponse(_options.MODULE_NAME, 'create', error, res)
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
update: (config) => {
|
update: (config) => {
|
||||||
|
|||||||
@ -126,17 +126,27 @@ const eventComposer = (event, context) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let speakers = []
|
let speakers = []
|
||||||
if ((context.scopes) && (context.scopes.includes('includeSpeakers'))) {
|
let details = []
|
||||||
speakers = event.details.map((detail) => ({
|
if ((context.scopes) && (context.scopes.includes('includeDetails'))) {
|
||||||
order: detail.order,
|
|
||||||
...speakerComposer(detail.speaker, context),
|
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({},
|
return Object.assign({},
|
||||||
event,
|
event,
|
||||||
{ multimedias: multimedias },
|
{ multimedias: multimedias },
|
||||||
{ details: undefined },
|
{ details: details },
|
||||||
{ speakers: speakers }
|
{ speakers: speakers }
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|||||||
@ -122,7 +122,6 @@ const defaultOptions = {};
|
|||||||
|
|
||||||
const generateService = (model, extraMethods = {}, options = defaultOptions) => {
|
const generateService = (model, extraMethods = {}, options = defaultOptions) => {
|
||||||
|
|
||||||
|
|
||||||
const defaultService = {
|
const defaultService = {
|
||||||
fetchAssociation: async(params, context) => {
|
fetchAssociation: async(params, context) => {
|
||||||
|
|
||||||
@ -201,6 +200,7 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) =>
|
|||||||
},
|
},
|
||||||
|
|
||||||
create: async (values, context) => {
|
create: async (values, context) => {
|
||||||
|
console.log('CREAAAAAAAAAAAAAAAAAAAAAAAAAATE44444');
|
||||||
console.log(values);
|
console.log(values);
|
||||||
return await model.scope(context.scopes).create(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) => {
|
deleteInscription: async (req, res, next) => {
|
||||||
const params = extractParamsFromRequest(req, res, {});
|
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', () => {
|
Event.addScope('includeMultimedias', () => {
|
||||||
return {
|
return {
|
||||||
include: [{
|
include: [{
|
||||||
@ -266,14 +258,11 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Event.addScope('includeSpeakers', () => {
|
Event.addScope('includeDetails', () => {
|
||||||
return {
|
return {
|
||||||
include: [{
|
include: [{
|
||||||
model: sequelize.models.EventDetail,
|
model: sequelize.models.EventDetail,
|
||||||
as: 'details',
|
as: 'details',
|
||||||
where: {
|
|
||||||
type: 'speaker'
|
|
||||||
},
|
|
||||||
required: false,
|
required: false,
|
||||||
include: [{
|
include: [{
|
||||||
model: sequelize.models.Speaker,
|
model: sequelize.models.Speaker,
|
||||||
|
|||||||
@ -10,6 +10,7 @@ const SortMiddleware = require('../../middlewares/sort');
|
|||||||
|
|
||||||
//const entityValidation = require('./entity.validations');
|
//const entityValidation = require('./entity.validations');
|
||||||
const eventController = require('./event.controller');
|
const eventController = require('./event.controller');
|
||||||
|
const eventReservationController = require('./events_reservations.controller');
|
||||||
const eventValidation = require('./event.validations');
|
const eventValidation = require('./event.validations');
|
||||||
|
|
||||||
const generalInvalidFields = [
|
const generalInvalidFields = [
|
||||||
@ -29,11 +30,11 @@ routes.get('/events',
|
|||||||
(req, res, next) => {
|
(req, res, next) => {
|
||||||
if (!req.body.city)
|
if (!req.body.city)
|
||||||
return eventController.find({
|
return eventController.find({
|
||||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||||
})(req, res, next)
|
})(req, res, next)
|
||||||
else
|
else
|
||||||
return eventController.find({
|
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);
|
})(req, res, next);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -70,7 +71,7 @@ routes.get('/events/past', cacheSuccesses('24 hours'),
|
|||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-init_date" }),
|
SortMiddleware.middleware({ default: "-init_date" }),
|
||||||
eventController.find({
|
eventController.find({
|
||||||
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
scopes: ['defaultScope', 'past', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ routes.get('/events/today',
|
|||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-init_date" }),
|
SortMiddleware.middleware({ default: "-init_date" }),
|
||||||
eventController.find({
|
eventController.find({
|
||||||
scopes: ['defaultScope', 'today', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
scopes: ['defaultScope', 'today', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -94,7 +95,7 @@ routes.get('/events/current',
|
|||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-init_date" }),
|
SortMiddleware.middleware({ default: "-init_date" }),
|
||||||
eventController.find({
|
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) => {
|
(req, res, next) => {
|
||||||
return eventController.findOne({
|
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)
|
})(req, res, next)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -269,11 +270,11 @@ routes.get('/admin/events',
|
|||||||
(req, res, next) => {
|
(req, res, next) => {
|
||||||
if (!req.body.city)
|
if (!req.body.city)
|
||||||
return eventController.find({
|
return eventController.find({
|
||||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||||
})(req, res, next)
|
})(req, res, next)
|
||||||
else
|
else
|
||||||
return eventController.find({
|
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);
|
})(req, res, next);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -283,7 +284,7 @@ routes.get('/admin/events/next',
|
|||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "init_available_date" }),
|
SortMiddleware.middleware({ default: "init_available_date" }),
|
||||||
eventController.find({
|
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(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-init_date" }),
|
SortMiddleware.middleware({ default: "-init_date" }),
|
||||||
eventController.find({
|
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(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-init_date" }),
|
SortMiddleware.middleware({ default: "-init_date" }),
|
||||||
eventController.find({
|
eventController.find({
|
||||||
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeSpeakers'],
|
scopes: ['defaultScope', 'current', 'includeVenue', 'includeMultimedias', 'includeDetails'],
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -309,11 +310,21 @@ routes.get('/admin/events/:id',
|
|||||||
isAdministratorUser,
|
isAdministratorUser,
|
||||||
(req, res, next) => {
|
(req, res, next) => {
|
||||||
return eventController.findOne({
|
return eventController.findOne({
|
||||||
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeSpeakers']
|
scopes: ['defaultScope', 'includeVenue', 'includeMultimedias', 'includeDetails']
|
||||||
})(req, res, next)
|
})(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
|
/*// Un ponente
|
||||||
routes.get('/admin/speakers/:id',
|
routes.get('/admin/speakers/:id',
|
||||||
|
|||||||
@ -31,6 +31,9 @@ const extraMethods = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
afterFetchOne: (result, params, context) => {
|
afterFetchOne: (result, params, context) => {
|
||||||
|
console.log('----------------------------------------------');
|
||||||
|
console.log(result);
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
result = result.toJSON();
|
result = result.toJSON();
|
||||||
return eventComposer(result, context);
|
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';
|
'use strict';
|
||||||
|
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const Sequelize = require('sequelize');
|
||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const models = require('../../core/models');
|
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) => {
|
_updateConfirmedReservation: (id, confirmed) => {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
models.EventReservation.update(
|
models.EventReservation.update(
|
||||||
|
|||||||
@ -32,6 +32,7 @@ routes.get('/venues/:id/events',
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
routes.post('/venues/', SchemaValidator(VenueValidation.VenueInputType, true), venueController.create);
|
routes.post('/venues/', SchemaValidator(VenueValidation.VenueInputType, true), venueController.create);
|
||||||
|
routes.get('/venues/count' , venueController.count);
|
||||||
//routes.put('/venues/:id', isAdministratorUser, venueController.update);
|
//routes.put('/venues/:id', isAdministratorUser, venueController.update);
|
||||||
//routes.delete('/venues/:id', isAdministratorUser, venueController.delete);
|
//routes.delete('/venues/:id', isAdministratorUser, venueController.delete);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user