app2-api/modules/multimedia/multimedia_file.routes.js

91 lines
2.9 KiB
JavaScript
Raw Normal View History

2019-07-25 07:37:04 +00:00
const routes = require('express').Router();
2019-08-18 15:08:18 +00:00
const config = require('../../config');
2019-08-15 17:54:18 +00:00
// Uploader
const cdnUpload = require('../../middlewares/uploader.js');
2019-07-25 07:37:04 +00:00
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
const { cacheSuccesses } = require('../../middlewares/cache');
2019-08-15 17:54:18 +00:00
const SchemaValidator = require('../../middlewares/schemaValidator');
2019-07-25 07:37:04 +00:00
const PaginateMiddleware = require('../../middlewares/paginate');
const FieldMiddleware = require('../../middlewares/fields');
const SortMiddleware = require('../../middlewares/sort');
const multimediaFileController = require('./multimedia_file.controller');
2019-08-15 17:54:18 +00:00
const { multimediaFilesInputType } = require('./multimedia_file.validations');
2019-07-25 07:37:04 +00:00
const generalInvalidFields = [
'userId', 'createdAt', 'updatedAt',
];
2019-07-30 11:15:25 +00:00
routes.get('/multimediafiles', cacheSuccesses('24 hours'),
2019-07-25 07:37:04 +00:00
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
2019-08-16 17:32:04 +00:00
SortMiddleware.middleware({ default: "createdAt" }),
2019-07-25 07:37:04 +00:00
multimediaFileController.find({
scopes: ['includeMultimedias']
})
);
2019-07-30 11:15:25 +00:00
routes.get('/multimediafiles/:id', cacheSuccesses('24 hours'),
2019-07-25 07:37:04 +00:00
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
//SortMiddleware.middleware({ default: "init_available_date" }),
multimediaFileController.findOne({
scopes: ['includeMultimedias']
})
);
2019-08-15 17:54:18 +00:00
/*********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
// Nuevo
routes.post('/admin/multimediafiles/',
isAdministratorUser,
SchemaValidator(multimediaFilesInputType, true),
cdnUpload().single('file'),
2019-08-18 15:08:18 +00:00
(req, res, next) => {
2019-08-18 21:15:34 +00:00
console.log('POST ****************************');
console.log(req.file, req.data);
2019-08-18 15:08:18 +00:00
if (req.file) {
2019-08-19 14:35:57 +00:00
console.log('--->', req.file.path);
2019-08-18 15:08:18 +00:00
req.body.url = req.file.path.replace(config.uploads.path, '');
2019-08-19 14:35:57 +00:00
console.log('--->', req.body.url);
2019-08-18 15:08:18 +00:00
req.body.provider = 'cdn';
req.body.class = 'picture';
}
next();
},
2019-08-15 17:54:18 +00:00
multimediaFileController.create()
);
2019-07-25 07:37:04 +00:00
2019-08-15 17:54:18 +00:00
// Modificación
routes.put('/admin/multimediafiles/:id',
isAdministratorUser,
2019-08-18 21:15:34 +00:00
SchemaValidator(multimediaFilesInputType, true),
2019-08-15 17:54:18 +00:00
cdnUpload().single('file'),
2019-08-18 15:08:18 +00:00
(req, res, next) => {
2019-08-18 21:15:34 +00:00
console.log('PUT ****************************');
console.log(req.file, req.data, req.body);
2019-08-18 15:08:18 +00:00
if (req.file) {
req.body.url = req.file.path.replace(config.uploads.path, '');
req.body.provider = 'cdn';
req.body.class = 'picture';
}
next();
},
2019-08-15 17:54:18 +00:00
multimediaFileController.update()
);
2019-07-25 07:37:04 +00:00
2019-08-16 16:37:13 +00:00
// Borrado
routes.delete('/admin/multimediafiles/:id',
isAdministratorUser,
multimediaFileController.delete()
);
2019-07-25 07:37:04 +00:00
module.exports = routes;