From 631cded9b6f5740fa57e8a326f921da7fd13f8ac Mon Sep 17 00:00:00 2001 From: david Date: Thu, 25 Jul 2019 20:29:33 +0200 Subject: [PATCH] a --- helpers/composes.helper.js | 103 ++++++++++++++++++-------------- modules/events/event.routes.js | 6 ++ modules/events/event.service.js | 1 - 3 files changed, 64 insertions(+), 46 deletions(-) diff --git a/helpers/composes.helper.js b/helpers/composes.helper.js index c5c1c2f..7f15f39 100644 --- a/helpers/composes.helper.js +++ b/helpers/composes.helper.js @@ -1,63 +1,76 @@ 'use strict'; const cdnHelper = require('./cdn.helper'); -const valuesComposer = (values) => values.map(value => ({ - id: value.id, - name: value.name, -})); +const valuesComposer = (values) => (values) ? values.map(value => ({id: value.id, name: value.name,})): values; -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 => ({ - ...multimedia, - ...multimedia.multimediaFile, - type: multimedia.type, - media_type: multimedia.multimediaFile.type, - multimediaFile: undefined, - createdAt: undefined, - updatedAt: undefined, - userId: undefined, - url: (multimedia.multimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.multimediaFile.url) : multimedia.multimediaFile.url, -})); +const multimediaComposer = (multimedias) => { + if(multimedias) { + return multimedias.map(multimedia => ({ + ...multimedia, + ...multimedia.multimediaFile, + type: multimedia.type, + media_type: multimedia.multimediaFile.type, + multimediaFile: undefined, + createdAt: undefined, + updatedAt: undefined, + userId: undefined, + url: (multimedia.multimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.multimediaFile.url) : multimedia.multimediaFile.url, + })); + } + else + return multimedias; +}; -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 socialNetworksComposer = (speaker) => { + if (speaker) { + 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 + }; + } + else + return speaker; }; const speakerComposer = (speaker, context) => { + let multimedias = []; - if (context.scopes.includes('includeMultimedias')) { + if ((context.scopes) && (context.scopes.includes('includeMultimedias'))) { multimedias = multimediaComposer(speaker.multimedias); }; let comments = []; - if (context.scopes.includes('includeComments')) { + if ((context.scopes) && (context.scopes.includes('includeComments'))) { comments = commentsComposer(speaker.comments); }; @@ -79,22 +92,22 @@ const speakerComposer = (speaker, context) => { const eventComposer = (event, context) => { - if (context.scopes.includes('includeVenue')) { + if ((context.scopes) && (context.scopes.includes('includeVenue'))){ delete event.venue.updatedAt; delete event.venue.createdAt; event.venue.image_url = cdnHelper.getCDNCityMediaUrl(event.venue.city); }; let multimedias = [] - if (context.scopes.includes('includeMultimedias')) { + if ((context.scopes) && (context.scopes.includes('includeMultimedias'))) { multimedias = multimediaComposer(event.multimedias) }; let speakers = [] - if (context.scopes.includes('includeSpeakers')) { + if ((context.scopes) && (context.scopes.includes('includeSpeakers'))) { speakers = event.details.map((detail) => ({ order: detail.order, - ...speakerComposer(detail.speaker), + ...speakerComposer(detail.speaker, context), })) }; diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index edeaddd..596e4e6 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -121,6 +121,12 @@ routes.get('/events/:id/inscriptions', 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 routes.post('/events/:id/inscriptions', isLoggedUser, diff --git a/modules/events/event.service.js b/modules/events/event.service.js index b7d1a74..5e37334 100644 --- a/modules/events/event.service.js +++ b/modules/events/event.service.js @@ -25,7 +25,6 @@ const extraMethods = { } }, - afterFetchOne: (result, params, context) => { if (result) result = result.toJSON();