This commit is contained in:
David Arranz 2019-07-25 20:29:33 +02:00
parent 6e539efb99
commit 631cded9b6
3 changed files with 64 additions and 46 deletions

View File

@ -1,63 +1,76 @@
'use strict'; 'use strict';
const cdnHelper = require('./cdn.helper'); const cdnHelper = require('./cdn.helper');
const valuesComposer = (values) => values.map(value => ({ const valuesComposer = (values) => (values) ? values.map(value => ({id: value.id, name: value.name,})): values;
id: value.id,
name: value.name,
}));
const commentsComposer = (comments) => comments.map(comment => ({
...comment,
userId: undefined,
user: {
...comment.user,
profile_picture: cdnHelper.getCDNMediaUrl(comment.user.profile_picture)
const commentsComposer = (comments) => {
if (comments) {
return comments.map(comment => ({
...comment,
userId: undefined,
user: {
...comment.user,
profile_picture: cdnHelper.getCDNMediaUrl(comment.user.profile_picture)
}
}));
} }
})) else return comments;
};
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({ const multimediaComposer = (multimedias) => {
...multimedia, if(multimedias) {
...multimedia.multimediaFile, return multimedias.map(multimedia => ({
type: multimedia.type, ...multimedia,
media_type: multimedia.multimediaFile.type, ...multimedia.multimediaFile,
multimediaFile: undefined, type: multimedia.type,
createdAt: undefined, media_type: multimedia.multimediaFile.type,
updatedAt: undefined, multimediaFile: undefined,
userId: undefined, createdAt: undefined,
url: (multimedia.multimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.multimediaFile.url) : multimedia.multimediaFile.url, updatedAt: undefined,
})); userId: undefined,
url: (multimedia.multimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.multimediaFile.url) : multimedia.multimediaFile.url,
}));
}
else
return multimedias;
};
const socialNetworksComposer = (speaker, context) => { const socialNetworksComposer = (speaker) => {
return { if (speaker) {
rrss: { return {
twitter: speaker.twitter ? speaker.twitter : null, rrss: {
facebook: speaker.facebook ? speaker.facebook : null, twitter: speaker.twitter ? speaker.twitter : null,
youtube: speaker.youtube ? speaker.youtube : null, facebook: speaker.facebook ? speaker.facebook : null,
linkedin: speaker.linkedin ? speaker.linkedin : null, youtube: speaker.youtube ? speaker.youtube : null,
instagram: speaker.instagram ? speaker.instagram : null, linkedin: speaker.linkedin ? speaker.linkedin : null,
web: speaker.web ? speaker.web : null instagram: speaker.instagram ? speaker.instagram : null,
}, web: speaker.web ? speaker.web : null
twitter: undefined, },
facebook: undefined, twitter: undefined,
youtube: undefined, facebook: undefined,
linkedin: undefined, youtube: undefined,
instagram: undefined, linkedin: undefined,
web: undefined instagram: undefined,
}; web: undefined
};
}
else
return speaker;
}; };
const speakerComposer = (speaker, context) => { const speakerComposer = (speaker, context) => {
let multimedias = []; let multimedias = [];
if (context.scopes.includes('includeMultimedias')) { if ((context.scopes) && (context.scopes.includes('includeMultimedias'))) {
multimedias = multimediaComposer(speaker.multimedias); multimedias = multimediaComposer(speaker.multimedias);
}; };
let comments = []; let comments = [];
if (context.scopes.includes('includeComments')) { if ((context.scopes) && (context.scopes.includes('includeComments'))) {
comments = commentsComposer(speaker.comments); comments = commentsComposer(speaker.comments);
}; };
@ -79,22 +92,22 @@ const speakerComposer = (speaker, context) => {
const eventComposer = (event, context) => { const eventComposer = (event, context) => {
if (context.scopes.includes('includeVenue')) { if ((context.scopes) && (context.scopes.includes('includeVenue'))){
delete event.venue.updatedAt; delete event.venue.updatedAt;
delete event.venue.createdAt; delete event.venue.createdAt;
event.venue.image_url = cdnHelper.getCDNCityMediaUrl(event.venue.city); event.venue.image_url = cdnHelper.getCDNCityMediaUrl(event.venue.city);
}; };
let multimedias = [] let multimedias = []
if (context.scopes.includes('includeMultimedias')) { if ((context.scopes) && (context.scopes.includes('includeMultimedias'))) {
multimedias = multimediaComposer(event.multimedias) multimedias = multimediaComposer(event.multimedias)
}; };
let speakers = [] let speakers = []
if (context.scopes.includes('includeSpeakers')) { if ((context.scopes) && (context.scopes.includes('includeSpeakers'))) {
speakers = event.details.map((detail) => ({ speakers = event.details.map((detail) => ({
order: detail.order, order: detail.order,
...speakerComposer(detail.speaker), ...speakerComposer(detail.speaker, context),
})) }))
}; };

View File

@ -121,6 +121,12 @@ routes.get('/events/:id/inscriptions',
eventController.getInscription, eventController.getInscription,
); );
// Esto da las inscripciones (1) de un usuario pero si el usuario fuera el administrador podría todas las inscripciones de un evento
routes.get('/inscriptions/:id/inscriptions',
isLoggedUser,
eventController.getInscription,
);
// Hacer una inscripción // Hacer una inscripción
routes.post('/events/:id/inscriptions', routes.post('/events/:id/inscriptions',
isLoggedUser, isLoggedUser,

View File

@ -25,7 +25,6 @@ const extraMethods = {
} }
}, },
afterFetchOne: (result, params, context) => { afterFetchOne: (result, params, context) => {
if (result) if (result)
result = result.toJSON(); result = result.toJSON();