app2-api/modules/multimedia/multimedia_file.routes.js
2019-08-16 19:32:04 +02:00

70 lines
2.2 KiB
JavaScript

const routes = require('express').Router();
// Uploader
const cdnUpload = require('../../middlewares/uploader.js');
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
const { cacheSuccesses } = require('../../middlewares/cache');
const SchemaValidator = require('../../middlewares/schemaValidator');
const PaginateMiddleware = require('../../middlewares/paginate');
const FieldMiddleware = require('../../middlewares/fields');
const SortMiddleware = require('../../middlewares/sort');
const multimediaFileController = require('./multimedia_file.controller');
const { multimediaFilesInputType } = require('./multimedia_file.validations');
const generalInvalidFields = [
'userId', 'createdAt', 'updatedAt',
];
routes.get('/multimediafiles', cacheSuccesses('24 hours'),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
multimediaFileController.find({
scopes: ['includeMultimedias']
})
);
routes.get('/multimediafiles/:id', cacheSuccesses('24 hours'),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
//SortMiddleware.middleware({ default: "init_available_date" }),
multimediaFileController.findOne({
scopes: ['includeMultimedias']
})
);
/*********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
// Nuevo
routes.post('/admin/multimediafiles/',
isAdministratorUser,
SchemaValidator(multimediaFilesInputType, true),
cdnUpload().single('file'),
multimediaFileController.create()
);
// Modificación
routes.put('/admin/multimediafiles/:id',
isAdministratorUser,
SchemaValidator(multimediaFilesInputType, true),
cdnUpload().single('file'),
multimediaFileController.update()
);
// Borrado
routes.delete('/admin/multimediafiles/:id',
isAdministratorUser,
SchemaValidator(multimediaFilesInputType, true),
cdnUpload().single('file'),
multimediaFileController.delete()
);
module.exports = routes;