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;