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

83 lines
2.4 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',
isLoggedUser,
cacheSuccesses('24 hours'),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
//SortMiddleware.middleware({ default: "init_available_date" }),
multimediaController.find({
scopes: ['includeMultimediaFile']
})
);
routes.get('/multimedias/:id',
isLoggedUser,
cacheSuccesses('24 hours'),
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(),
type: Joi.string().required(),
multimediafileId: Joi.string().required()
});
routes.post('/admin/multimedias/',
isAdministratorUser,
SchemaValidator(multimediasInputType, true),
multimediaController.create()
);
routes.put('/admin/multimedias/:id',
isAdministratorUser,
//SchemaValidator(multimediasInputType, true),
//uploader.single('file'),
multimediaController.update()
);
routes.delete('/admin/multimedias/:id',
isAdministratorUser,
//SchemaValidator(multimediasInputType, true),
//uploader.single('file'),
multimediaController.delete()
);
module.exports = routes;