78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
const routes = require('express').Router();
|
|
const Joi = require('joi');
|
|
|
|
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
|
const { cacheSuccesses } = require('../../middlewares/cache');
|
|
|
|
// Uploader
|
|
// const uploader = require('../../middlewares/uploader.js');
|
|
|
|
const SchemaValidator = require('../../middlewares/schemaValidator');
|
|
|
|
const PaginateMiddleware = require('../../middlewares/paginate');
|
|
const FieldMiddleware = require('../../middlewares/fields');
|
|
const SortMiddleware = require('../../middlewares/sort');
|
|
|
|
const multimediaController = require('./multimedia.controller');
|
|
|
|
const generalInvalidFields = [
|
|
'userId', 'createdAt', 'updatedAt',
|
|
];
|
|
|
|
|
|
routes.get('/multimedias', //cacheSuccesses('24 hours'),
|
|
isLoggedUser,
|
|
FieldMiddleware.middleware({
|
|
invalidFields: generalInvalidFields
|
|
}),
|
|
PaginateMiddleware.middleware(),
|
|
//SortMiddleware.middleware({ default: "init_available_date" }),
|
|
multimediaController.find({
|
|
scopes: ['includeMultimediaFile']
|
|
})
|
|
);
|
|
|
|
routes.get('/multimedias/:id', //cacheSuccesses('24 hours'),
|
|
isLoggedUser,
|
|
FieldMiddleware.middleware({
|
|
invalidFields: generalInvalidFields
|
|
}),
|
|
//PaginateMiddleware.middleware(),
|
|
//SortMiddleware.middleware({ default: "init_available_date" }),
|
|
multimediaController.findOne({
|
|
scopes: ['includeMultimediaFile']
|
|
})
|
|
);
|
|
|
|
|
|
/*********************************************************************************************************
|
|
* ADMINISTRACIÓN
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
const multimediasInputType = Joi.object().keys({
|
|
entityId: Joi.string().required(),
|
|
entityName: Joi.string().required(),
|
|
name: Joi.string().optional(),
|
|
description: Joi.string().optional(),
|
|
type: Joi.string().required(),
|
|
class: Joi.string().required(),
|
|
});
|
|
|
|
|
|
routes.post('/admin/multimedias/',
|
|
isAdministratorUser,
|
|
//SchemaValidator(multimediasInputType, true),
|
|
//uploader.single('file'),
|
|
multimediaController.create()
|
|
);
|
|
|
|
routes.put('/admin/multimedias/:id',
|
|
isAdministratorUser,
|
|
//SchemaValidator(multimediasInputType, true),
|
|
//uploader.single('file'),
|
|
multimediaController.update()
|
|
);
|
|
|
|
|
|
module.exports = routes; |