a
This commit is contained in:
parent
4925f969c1
commit
ccfe2c8512
@ -55,7 +55,19 @@ module.exports = function (sequelize, DataTypes) {
|
||||
defaultScope: {
|
||||
where: {
|
||||
state: 'publish'
|
||||
}
|
||||
},
|
||||
include: [
|
||||
{
|
||||
model: sequelize.models.SpeakerType,
|
||||
as: 'type'
|
||||
},
|
||||
/* {
|
||||
model: sequelize.models.Value,
|
||||
as: 'values',
|
||||
required: false,
|
||||
},
|
||||
*/
|
||||
]
|
||||
},
|
||||
});
|
||||
|
||||
@ -111,6 +123,16 @@ module.exports = function (sequelize, DataTypes) {
|
||||
}
|
||||
});
|
||||
|
||||
Speaker.addScope('includeValues', () => {
|
||||
return {
|
||||
include: [{
|
||||
model: sequelize.models.Value,
|
||||
as: 'values',
|
||||
attributes: ['id', 'name'],
|
||||
required: false,
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
return Speaker;
|
||||
};
|
||||
@ -10,16 +10,20 @@ const SortMiddleware = require('../../middlewares/sort');
|
||||
//const entityValidation = require('./entity.validations');
|
||||
const speakerController = require('./speaker.controller');
|
||||
|
||||
const generalInvalidFields = [
|
||||
'userId', 'createdAt', 'updatedAt', 'state',
|
||||
];
|
||||
|
||||
// Todos los ponentes
|
||||
routes.get('/speakers',
|
||||
isLoggedUser,
|
||||
FieldMiddleware.middleware({
|
||||
invalidFields: ['userId', 'createdAt', 'updatedAt']
|
||||
invalidFields: generalInvalidFields
|
||||
}),
|
||||
PaginateMiddleware.middleware(),
|
||||
SortMiddleware.middleware({ default: "name" }),
|
||||
speakerController.find({
|
||||
scopes: ['defaultScope'],
|
||||
scopes: ['defaultScope', 'includeValues'],
|
||||
})
|
||||
);
|
||||
|
||||
@ -52,10 +56,12 @@ routes.get('/speakers/last',
|
||||
// Un ponente
|
||||
routes.get('/speakers/:id',
|
||||
isLoggedUser,
|
||||
/*FieldMiddleware.middleware({
|
||||
invalidFields: ['createdAt']
|
||||
}),*/
|
||||
speakerController.findOne()
|
||||
FieldMiddleware.middleware({
|
||||
invalidFields: generalInvalidFields
|
||||
}),
|
||||
speakerController.findOne({
|
||||
scopes: ['defaultScope', 'includeValues', 'includeMultimedias'],
|
||||
})
|
||||
);
|
||||
|
||||
// Dar ponentes similares a uno dado
|
||||
|
||||
@ -6,6 +6,7 @@ const { generateService, parseParamsToFindOptions } = require('../../helpers/ser
|
||||
const Sequelize = require('sequelize');
|
||||
const models = require('../../core/models');
|
||||
|
||||
|
||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
...multimedia,
|
||||
...multimedia.MultimediaFile,
|
||||
@ -17,6 +18,12 @@ const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
userId: undefined,
|
||||
}));
|
||||
|
||||
const valuesComposer = (values) => values.map(value => ({
|
||||
id: value.id,
|
||||
name: value.name,
|
||||
}));
|
||||
|
||||
|
||||
const socialNetworksComposer = (speaker, context) => {
|
||||
return {
|
||||
rrss: {
|
||||
@ -42,6 +49,11 @@ const speakerComposer = (speaker, context) => {
|
||||
multimedias = multimediaComposer(speaker.multimedias)
|
||||
};
|
||||
|
||||
speaker.typename = speaker.type.name;
|
||||
delete speaker.type;
|
||||
|
||||
speaker.values = valuesComposer(speaker.values);
|
||||
|
||||
const rrss = socialNetworksComposer(speaker, context);
|
||||
|
||||
return Object.assign({},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user