68 lines
2.0 KiB
JavaScript
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);
|
|
|