From d2219e66f15f2d4a8e9f05666dccc340624b9597 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 5 Aug 2019 20:04:29 +0200 Subject: [PATCH] . --- modules/multimedia/multimedia.routes.js | 13 ++++++++-- modules/multimedia/multimedia.service.js | 33 +++++++++++++++++++++++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/modules/multimedia/multimedia.routes.js b/modules/multimedia/multimedia.routes.js index 8e4eccc..cce757a 100644 --- a/modules/multimedia/multimedia.routes.js +++ b/modules/multimedia/multimedia.routes.js @@ -6,15 +6,21 @@ const { cacheSuccesses } = require('../../middlewares/cache'); //const SchemaValidator = require('../../middlewares/schemaValidator'); const PaginateMiddleware = require('../../middlewares/paginate'); -//const FieldMiddleware = require('../../middlewares/fields'); +const FieldMiddleware = require('../../middlewares/fields'); const SortMiddleware = require('../../middlewares/sort'); -//const VenueValidation = require('./venue.validations'); const multimediaController = require('./multimedia.controller'); +const generalInvalidFields = [ + 'userId', 'createdAt', 'updatedAt', +]; + routes.get('/multimedias', //cacheSuccesses('24 hours'), isLoggedUser, + FieldMiddleware.middleware({ + invalidFields: generalInvalidFields + }), PaginateMiddleware.middleware(), //SortMiddleware.middleware({ default: "init_available_date" }), multimediaController.find({ @@ -24,6 +30,9 @@ routes.get('/multimedias', //cacheSuccesses('24 hours'), routes.get('/multimedias/:id', //cacheSuccesses('24 hours'), isLoggedUser, + FieldMiddleware.middleware({ + invalidFields: generalInvalidFields + }), //PaginateMiddleware.middleware(), //SortMiddleware.middleware({ default: "init_available_date" }), multimediaController.findOne({ diff --git a/modules/multimedia/multimedia.service.js b/modules/multimedia/multimedia.service.js index 6edb596..d64aa49 100644 --- a/modules/multimedia/multimedia.service.js +++ b/modules/multimedia/multimedia.service.js @@ -4,13 +4,44 @@ const _ = require('lodash'); const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); const models = require('../../core/models'); +const cdnHelper = require('../../helpers/cdn.helper'); const getVimeoVideoInfo = require('../../helpers/vimeo.helper'); const providerComposer = (multimedia) => { - return getVimeoVideoInfo(multimedia.code) + + if (multimedia.provider === 'vimeo') { + multimedia.providerInfo = getVimeoVideoInfo(multimedia.code) + } else if (multimedia.provider === 'cdn') { + multimedia.url = cdnHelper.getCDNMediaUrl(multimedia.url); + } + + return multimedia; } const extraMethods = { + afterFetchAll: (result, params, context) => { + + if (!result.count) { + return result; + } + + let rows = result.rows.map(function(row) { + let result = row.toJSON(); + result = Object.assign(result, result.multimediaFile, { multimediaFile: undefined }) + + delete result.createdAt; + delete result.updatedAt; + delete result.userId; + + return providerComposer(result); + }); + + return { + count: result.count, + rows: rows + } + }, + afterFetchOne: async (result, params, context) => { if (!result) { return result;