app2-api/modules/multimedia/multimedia_file.controller.js
2019-08-16 18:37:13 +02:00

68 lines
2.0 KiB
JavaScript

'use strict';
const httpStatus = require('http-status');
var configuration = require('../../config');
const generateControllers = require('../../core/controllers');
const multimediaFileService = require('./multimedia_file.service');
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
// Module Name
const MODULE_NAME = '[multimediaFile.controller]';
const controllerOptions = { MODULE_NAME };
function buildContext(req, config) {
return {
user: req.user,
scopes: [],
...config,
}
}
const extraControllers = {
/*upload: (config) => {
return async (req, res, next) => {
var file = req.file;
console.log(file);
// ¿Hay fichero adjunto?
if (!file || !file.buffer) {
try {
var CDNFilePath = cdnHelper.getCDNFilenameWithPath(file.originalname, 'speaker');
await multimediaFileService.uploadFile(file, CDNFilePath, data, context);
} catch(error) {
return handleErrorResponse(MODULE_NAME, 'upload', error, res);
}
} else {
next();
}
}
},*/
create: (config) => {
return async (req, res, next) => {
var data = req.body;
try {
if (req.file) {
data.url = req.file.path.replace(configuration.uploads.path, '');
data.provider = 'cdn';
data.class = 'picture';
}
const context = buildContext(req, config);
const result = await multimediaFileService.create(data, context);
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
} catch (error) {
return handleErrorResponse(MODULE_NAME, 'create', error, res)
}
}
},
};
module.exports = generateControllers(multimediaFileService, extraControllers, controllerOptions);