From ea6bda68a7164bf790cc991072498b1a525969b2 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 7 Aug 2019 15:56:25 +0200 Subject: [PATCH] . --- core/express.js | 15 ++++++-- middlewares/uploader.js | 10 ++++++ modules/multimedia/multimedia.routes.js | 46 ++++++++++++++++++++++-- modules/multimedia/multimedia.service.js | 10 +++--- package.json | 5 +-- 5 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 middlewares/uploader.js diff --git a/core/express.js b/core/express.js index 23085fc..9a09af1 100644 --- a/core/express.js +++ b/core/express.js @@ -44,11 +44,12 @@ app.use(helmet()); // enable CORS - Cross Origin Resource Sharing app.use(cors({ + origin: '*', exposeHeaders: [ "WWW-Authenticate", "Server-Authorization", "Content-Disposition", - "Content-Type", + "Content-Type", "Content-Length" ], maxAge: 31536000, @@ -64,13 +65,23 @@ app.use(cors({ ], allowHeaders: [ "Content-Type", + "X-CSRF-Token", + "X-Requested-With", + "Accept", + "Accept-Version", + "Content-Length", + "Content-MD5", + "Date", + "X-Api-Version", + "X-File-Name", "Authorization", "X-Frame-Options", - "Origin" + "Origin", ], })); + // Access validator app.use(passport.initialize()); require('./passport'); diff --git a/middlewares/uploader.js b/middlewares/uploader.js new file mode 100644 index 0000000..50482bb --- /dev/null +++ b/middlewares/uploader.js @@ -0,0 +1,10 @@ +var multer = require('multer'); + +/*var upload = function (path) { + return multer({storage: storage(path)}); +};*/ +var upload = multer({ + storage: multer.memoryStorage() +}); + +module.exports = upload; \ No newline at end of file diff --git a/modules/multimedia/multimedia.routes.js b/modules/multimedia/multimedia.routes.js index f41bc59..9e56df6 100644 --- a/modules/multimedia/multimedia.routes.js +++ b/modules/multimedia/multimedia.routes.js @@ -3,6 +3,9 @@ const routes = require('express').Router(); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const { cacheSuccesses } = require('../../middlewares/cache'); +// Uploader +const uploader = require('../../middlewares/uploader.js'); + //const SchemaValidator = require('../../middlewares/schemaValidator'); const PaginateMiddleware = require('../../middlewares/paginate'); @@ -46,9 +49,48 @@ routes.get('/multimedias/:id', //cacheSuccesses('24 hours'), ********************************************************************************************************* */ -routes.post('/multimedias/', - isAdministratorUser, +routes.post('/admin/multimedias/', + isAdministratorUser, uploader.any(), + function (req, res, next) { + + var file = req.file; + console.log(req.file); + console.log(req.files); + /*var filePath = assetHelper.getFileNameWithPath(file.originalname, assetHelper.PATHS.WALLPAPERS); + + assetHelper.uploadImage(file, filePath).then( + function () { + res.status(500).json({ + messenger: { + success: true, + message: 'Speaker wallpaper uploaded successfully', + code: 'E0100X' + }, + data: { + filepath: filePath + } + }); + }, + function (error) { + logger.error(error); + res.status(500).json({ + messenger: { + success: false, + message: 'File updating error.', + code: 'E01006' + } + }); + } + );*/ + res.send('0'); + }, + multimediaController.create +); + +routes.put('/admin/multimedias/:id', + isAdministratorUser, multimediaController.update ); + module.exports = routes; \ No newline at end of file diff --git a/modules/multimedia/multimedia.service.js b/modules/multimedia/multimedia.service.js index d64aa49..12a124b 100644 --- a/modules/multimedia/multimedia.service.js +++ b/modules/multimedia/multimedia.service.js @@ -27,6 +27,9 @@ const extraMethods = { let rows = result.rows.map(function(row) { let result = row.toJSON(); + + delete result.multimediaFile.id; + result = Object.assign(result, result.multimediaFile, { multimediaFile: undefined }) delete result.createdAt; @@ -49,12 +52,11 @@ const extraMethods = { const multimedia = result.toJSON(); - if (multimedia.provider === 'vimeo') { - multimedia.providerInfo = await providerComposer(multimedia); - } - return multimedia; + return providerComposer(multimedia); }, + + } module.exports = generateService(models.Multimedia, extraMethods); \ No newline at end of file diff --git a/package.json b/package.json index ea5681f..6a8f0da 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,10 @@ "http-status": "^1.3.2", "joi": "^14.3.1", "lodash": "^4.17.11", + "mailchimp-api-v3": "^1.12.0", "method-override": "^3.0.0", "moment": "^2.24.0", + "multer": "^1.4.2", "mysql": "^2.17.1", "mysql2": "^1.6.5", "node-fetch": "^2.3.0", @@ -58,7 +60,6 @@ "sequelize": "^5.6.1", "vimeo": "^2.1.1", "vm": "^0.1.0", - "winston": "^3.2.1", - "mailchimp-api-v3": "^1.12.0" + "winston": "^3.2.1" } }