app2-api/modules/multimedia/multimedia.controller.js
2019-08-15 19:54:18 +02:00

47 lines
1.8 KiB
JavaScript

'use strict';
const httpStatus = require('http-status');
const generateControllers = require('../../core/controllers');
const { buildContext } = require('../../core/controllers');
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
const multimediaService = require('./multimedia.service');
const multimediaFileService = require('./multimedia_file.service');
const cdnHelper = require('../../helpers/cdn.helper');
// Module Name
const MODULE_NAME = '[multimedia.controller]';
const controllerOptions = { MODULE_NAME };
const extraControllers = {
create: (config) => {
return async (req, res, next) => {
try {
var file = req.file;
var data = req.body;
console.log(file);
console.log(data);
// ¿Hay fichero?
if (!file || !file.buffer) {
return handleResultResponse('Multimediafile is missing', null, null, res, httpStatus.BAD_REQUEST);
}
var CDNFilePath = cdnHelper.getCDNFilenameWithPath(file.originalname, 'speaker');
console.log('CDNFilePath', CDNFilePath);
const context = buildContext(req, config);
await multimediaFileService.uploadFile(file, CDNFilePath, data, context);
const result = await multimediaService.create(data, context);
return handleResultResponse(result, null, null, res, httpStatus.CREATED)
} catch (error) {
return handleErrorResponse(MODULE_NAME, 'create', error, res)
}
}
},
};
module.exports = generateControllers(multimediaService, extraControllers, controllerOptions);