aa
This commit is contained in:
parent
894393a954
commit
2880dd26a2
102
helpers/composes.helper.js
Normal file
102
helpers/composes.helper.js
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const valuesComposer = (values) => values.map(value => ({
|
||||||
|
id: value.id,
|
||||||
|
name: value.name,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||||
|
...multimedia,
|
||||||
|
...multimedia.MultimediaFile,
|
||||||
|
type: multimedia.type,
|
||||||
|
media_type: multimedia.MultimediaFile.type,
|
||||||
|
MultimediaFile: undefined,
|
||||||
|
createdAt: undefined,
|
||||||
|
updatedAt: undefined,
|
||||||
|
userId: undefined,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const socialNetworksComposer = (speaker, context) => {
|
||||||
|
return {
|
||||||
|
rrss: {
|
||||||
|
twitter: speaker.twitter ? speaker.twitter : null,
|
||||||
|
facebook: speaker.facebook ? speaker.facebook : null,
|
||||||
|
youtube: speaker.youtube ? speaker.youtube : null,
|
||||||
|
linkedin: speaker.linkedin ? speaker.linkedin : null,
|
||||||
|
instagram: speaker.instagram ? speaker.instagram : null,
|
||||||
|
web: speaker.web ? speaker.web : null
|
||||||
|
},
|
||||||
|
twitter: undefined,
|
||||||
|
facebook: undefined,
|
||||||
|
youtube: undefined,
|
||||||
|
linkedin: undefined,
|
||||||
|
instagram: undefined,
|
||||||
|
web: undefined
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const speakerComposer = (speaker, context) => {
|
||||||
|
let multimedias = []
|
||||||
|
if (context.scopes.includes('includeMultimedias')) {
|
||||||
|
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({},
|
||||||
|
speaker,
|
||||||
|
rrss,
|
||||||
|
{ multimedias: multimedias },
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const eventComposer = (event, context) => {
|
||||||
|
|
||||||
|
if (context.scopes.includes('includeVenue')) {
|
||||||
|
delete event.venue.updatedAt;
|
||||||
|
delete event.venue.createdAt;
|
||||||
|
};
|
||||||
|
|
||||||
|
let multimedias = []
|
||||||
|
if (context.scopes.includes('includeMultimedias')) {
|
||||||
|
multimedias = multimediaComposer(event.multimedias)
|
||||||
|
};
|
||||||
|
|
||||||
|
let speakers = []
|
||||||
|
if (context.scopes.includes('includeSpeakers')) {
|
||||||
|
speakers = event.details.map((detail) => ({
|
||||||
|
order: detail.order,
|
||||||
|
...speakerComposer(detail.speaker),
|
||||||
|
}))
|
||||||
|
};
|
||||||
|
|
||||||
|
return Object.assign({},
|
||||||
|
event,
|
||||||
|
{ multimedias: multimedias },
|
||||||
|
{ details: undefined },
|
||||||
|
{ speakers: speakers }
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
const entityComposer = (entity, context) => {
|
||||||
|
|
||||||
|
delete entity.contact_person;
|
||||||
|
delete entity.contact_email;
|
||||||
|
|
||||||
|
return Object.assign({},
|
||||||
|
entity,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entityComposer,
|
||||||
|
speakerComposer,
|
||||||
|
eventComposer
|
||||||
|
}
|
||||||
@ -4,18 +4,9 @@
|
|||||||
const _ = require('lodash');
|
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 } = require('../../helpers/composes.helper');
|
||||||
|
|
||||||
|
|
||||||
const entityComposer = (entity, context) => {
|
|
||||||
|
|
||||||
delete entity.contact_person;
|
|
||||||
delete entity.contact_email;
|
|
||||||
|
|
||||||
return Object.assign({},
|
|
||||||
entity,
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
|
|
||||||
afterFetchAll: (result, params, context) => {
|
afterFetchAll: (result, params, context) => {
|
||||||
|
|||||||
@ -6,59 +6,13 @@ const moment = require('moment');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const Sequelize = require('sequelize');
|
const Sequelize = require('sequelize');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
const { eventComposer } = require('../../helpers/composes.helper');
|
||||||
|
|
||||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
|
||||||
...multimedia,
|
|
||||||
...multimedia.MultimediaFile,
|
|
||||||
type: multimedia.type,
|
|
||||||
media_type: multimedia.MultimediaFile.type,
|
|
||||||
MultimediaFile: undefined,
|
|
||||||
createdAt: undefined,
|
|
||||||
updatedAt: undefined,
|
|
||||||
userId: undefined,
|
|
||||||
}));
|
|
||||||
|
|
||||||
const speakerComposer = (speaker, context) => {
|
|
||||||
delete speaker.createdAt;
|
|
||||||
delete speaker.updatedAt;
|
|
||||||
return {...speaker,
|
|
||||||
multimedias: multimediaComposer(speaker.multimedias),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const eventComposer = (event, context) => {
|
|
||||||
|
|
||||||
if (context.scopes.includes('includeVenue')) {
|
|
||||||
delete event.venue.updatedAt;
|
|
||||||
delete event.venue.createdAt;
|
|
||||||
};
|
|
||||||
|
|
||||||
let multimedias = []
|
|
||||||
if (context.scopes.includes('includeMultimedias')) {
|
|
||||||
multimedias = multimediaComposer(event.multimedias)
|
|
||||||
};
|
|
||||||
|
|
||||||
let speakers = []
|
|
||||||
if (context.scopes.includes('includeSpeakers')) {
|
|
||||||
speakers = event.details.map((detail) => ({
|
|
||||||
order: detail.order,
|
|
||||||
... speakerComposer(detail.speaker),
|
|
||||||
}))
|
|
||||||
};
|
|
||||||
|
|
||||||
return Object.assign({},
|
|
||||||
event,
|
|
||||||
{ multimedias: multimedias },
|
|
||||||
{ details: undefined },
|
|
||||||
{ speakers: speakers }
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
|
|
||||||
afterFetchAll: (result, params, context) => {
|
afterFetchAll: (result, params, context) => {
|
||||||
|
|
||||||
if (!result.count) {
|
if (!result.count) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,63 +5,9 @@ const _ = require('lodash');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const Sequelize = require('sequelize');
|
const Sequelize = require('sequelize');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
const { speakerComposer } = require('../../helpers/composes.helper');
|
||||||
|
|
||||||
|
|
||||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
|
||||||
...multimedia,
|
|
||||||
...multimedia.MultimediaFile,
|
|
||||||
type: multimedia.type,
|
|
||||||
media_type: multimedia.MultimediaFile.type,
|
|
||||||
MultimediaFile: undefined,
|
|
||||||
createdAt: undefined,
|
|
||||||
updatedAt: undefined,
|
|
||||||
userId: undefined,
|
|
||||||
}));
|
|
||||||
|
|
||||||
const valuesComposer = (values) => values.map(value => ({
|
|
||||||
id: value.id,
|
|
||||||
name: value.name,
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
|
||||||
const socialNetworksComposer = (speaker, context) => {
|
|
||||||
return {
|
|
||||||
rrss: {
|
|
||||||
twitter: speaker.twitter ? speaker.twitter : null,
|
|
||||||
facebook: speaker.facebook ? speaker.facebook : null,
|
|
||||||
youtube: speaker.youtube ? speaker.youtube : null,
|
|
||||||
linkedin: speaker.linkedin ? speaker.linkedin : null,
|
|
||||||
instagram: speaker.instagram ? speaker.instagram : null,
|
|
||||||
web: speaker.web ? speaker.web : null
|
|
||||||
},
|
|
||||||
twitter: undefined,
|
|
||||||
facebook: undefined,
|
|
||||||
youtube: undefined,
|
|
||||||
linkedin: undefined,
|
|
||||||
instagram: undefined,
|
|
||||||
web: undefined
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
const speakerComposer = (speaker, context) => {
|
|
||||||
let multimedias = []
|
|
||||||
if (context.scopes.includes('includeMultimedias')) {
|
|
||||||
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({},
|
|
||||||
speaker,
|
|
||||||
rrss,
|
|
||||||
{ multimedias: multimedias },
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
const extraMethods = {
|
const extraMethods = {
|
||||||
afterFetchAll: (result, params, context) => {
|
afterFetchAll: (result, params, context) => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user