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

83 lines
2.4 KiB
JavaScript
Raw Normal View History

2019-07-09 17:39:52 +00:00
const routes = require('express').Router();
2019-08-07 18:32:13 +00:00
const Joi = require('joi');
2019-07-09 17:39:52 +00:00
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
2019-07-24 21:03:10 +00:00
const { cacheSuccesses } = require('../../middlewares/cache');
2019-08-07 13:56:25 +00:00
// Uploader
2019-08-15 17:54:18 +00:00
// const uploader = require('../../middlewares/uploader.js');
2019-08-07 13:56:25 +00:00
2019-08-07 18:32:13 +00:00
const SchemaValidator = require('../../middlewares/schemaValidator');
2019-07-09 17:39:52 +00:00
const PaginateMiddleware = require('../../middlewares/paginate');
2019-08-05 18:04:29 +00:00
const FieldMiddleware = require('../../middlewares/fields');
2019-07-09 17:39:52 +00:00
const SortMiddleware = require('../../middlewares/sort');
const multimediaController = require('./multimedia.controller');
2019-08-05 18:04:29 +00:00
const generalInvalidFields = [
'userId', 'createdAt', 'updatedAt',
];
2019-07-09 17:39:52 +00:00
2019-09-03 08:40:10 +00:00
routes.get('/multimedias',
2019-08-05 17:44:16 +00:00
isLoggedUser,
2019-09-03 08:40:10 +00:00
cacheSuccesses('24 hours'),
2019-08-05 18:04:29 +00:00
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
2019-07-09 17:39:52 +00:00
PaginateMiddleware.middleware(),
2019-07-10 08:42:03 +00:00
//SortMiddleware.middleware({ default: "init_available_date" }),
2019-07-25 07:37:04 +00:00
multimediaController.find({
scopes: ['includeMultimediaFile']
})
2019-07-09 17:39:52 +00:00
);
2019-09-03 08:40:10 +00:00
routes.get('/multimedias/:id',
2019-08-05 17:44:16 +00:00
isLoggedUser,
2019-09-03 08:40:10 +00:00
cacheSuccesses('24 hours'),
2019-08-05 18:04:29 +00:00
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
2019-07-09 17:39:52 +00:00
//PaginateMiddleware.middleware(),
2019-07-10 08:42:03 +00:00
//SortMiddleware.middleware({ default: "init_available_date" }),
2019-07-25 07:37:04 +00:00
multimediaController.findOne({
scopes: ['includeMultimediaFile']
})
2019-07-09 17:39:52 +00:00
);
2019-08-06 15:14:42 +00:00
/*********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
2019-08-07 18:32:13 +00:00
const multimediasInputType = Joi.object().keys({
entityId: Joi.string().required(),
entityName: Joi.string().required(),
type: Joi.string().required(),
2019-08-18 15:08:18 +00:00
multimediafileId: Joi.string().required()
2019-08-07 18:32:13 +00:00
});
2019-08-07 13:56:25 +00:00
routes.post('/admin/multimedias/',
2019-08-07 18:32:13 +00:00
isAdministratorUser,
2019-08-18 15:08:18 +00:00
SchemaValidator(multimediasInputType, true),
2019-08-07 18:32:13 +00:00
multimediaController.create()
2019-08-07 13:56:25 +00:00
);
routes.put('/admin/multimedias/:id',
isAdministratorUser,
2019-08-07 18:32:13 +00:00
//SchemaValidator(multimediasInputType, true),
2019-08-15 17:54:18 +00:00
//uploader.single('file'),
2019-08-07 18:32:13 +00:00
multimediaController.update()
2019-08-06 15:14:42 +00:00
);
2019-07-09 17:39:52 +00:00
2019-08-19 14:35:57 +00:00
routes.delete('/admin/multimedias/:id',
isAdministratorUser,
//SchemaValidator(multimediasInputType, true),
//uploader.single('file'),
multimediaController.delete()
);
2019-08-07 13:56:25 +00:00
2019-07-09 17:39:52 +00:00
module.exports = routes;