74 lines
2.3 KiB
JavaScript
74 lines
2.3 KiB
JavaScript
const routes = require('express').Router();
|
|
|
|
/*const postService = require('./post.service')(models.Post);
|
|
const postController = require('./post.controller')(postService);*/
|
|
const { cacheSuccesses } = require('../../middlewares/cache');
|
|
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
|
const PaginateMiddleware = require('../../middlewares/paginate');
|
|
const SortMiddleware = require('../../middlewares/sort');
|
|
const FieldMiddleware = require('../../middlewares/fields');
|
|
|
|
const blogController = require('./blog.controller')
|
|
|
|
routes.get('/posts', isLoggedUser,
|
|
cacheSuccesses('24 hours'),
|
|
FieldMiddleware.middleware({
|
|
invalidFields: ['user', 'createdAt']
|
|
}),
|
|
PaginateMiddleware.middleware(),
|
|
SortMiddleware.middleware({ default: "-date" }),
|
|
blogController.find({
|
|
scopes: ['defaultScope'],
|
|
})
|
|
);
|
|
|
|
routes.get('/posts/:id', isLoggedUser,
|
|
cacheSuccesses('24 hours'),
|
|
FieldMiddleware.middleware({
|
|
invalidFields: ['updatedAt', 'createdAt']
|
|
}),
|
|
//PaginateMiddleware.middleware(),
|
|
//SortMiddleware.middleware({ default: "date" }),
|
|
blogController.findOne()
|
|
);
|
|
|
|
routes.get('/posts/:id/comments', isLoggedUser,
|
|
PaginateMiddleware.middleware(),
|
|
SortMiddleware.middleware({ default: "-date" }),
|
|
blogController.getPostComments);
|
|
|
|
|
|
/********************************************************************************************************
|
|
* ADMINISTRACIÓN
|
|
*********************************************************************************************************
|
|
*/
|
|
// Todos los posts
|
|
routes.get('/admin/posts',
|
|
isAdministratorUser,
|
|
SortMiddleware.middleware({ default: "-date" }),
|
|
blogController.find({
|
|
scopes: ['includeMultimedias', 'includeCategories'],
|
|
})
|
|
);
|
|
|
|
routes.get('/admin/posts/:id', isLoggedUser,
|
|
isAdministratorUser,
|
|
blogController.findOne({
|
|
scopes: ['includeMultimedias', 'includeCategories'],
|
|
})
|
|
);
|
|
|
|
routes.get('/admin/posts/:id/comments', isLoggedUser,
|
|
isAdministratorUser,
|
|
(req, res, next) => {
|
|
req.params.association = 'comments';
|
|
next();
|
|
},
|
|
blogController.find()
|
|
);
|
|
|
|
routes.post('/admin/posts', isAdministratorUser, blogController.create());
|
|
routes.put('/admin/posts/:id', isAdministratorUser, blogController.update());
|
|
routes.delete('/admin/posts/:id', isAdministratorUser, blogController.delete());
|
|
|
|
module.exports = routes; |