2019-04-15 15:58:58 +00:00
|
|
|
const routes = require('express').Router();
|
2019-04-24 21:01:54 +00:00
|
|
|
|
2019-05-09 16:23:54 +00:00
|
|
|
/*const postService = require('./post.service')(models.Post);
|
|
|
|
|
const postController = require('./post.controller')(postService);*/
|
2019-09-03 08:40:10 +00:00
|
|
|
const { cacheSuccesses } = require('../../middlewares/cache');
|
2019-05-09 16:23:54 +00:00
|
|
|
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
|
|
|
|
const PaginateMiddleware = require('../../middlewares/paginate');
|
|
|
|
|
const SortMiddleware = require('../../middlewares/sort');
|
|
|
|
|
const FieldMiddleware = require('../../middlewares/fields');
|
2019-04-15 15:58:58 +00:00
|
|
|
|
2019-05-09 16:23:54 +00:00
|
|
|
const blogController = require('./blog.controller')
|
2019-04-24 21:01:54 +00:00
|
|
|
|
2019-05-23 09:40:50 +00:00
|
|
|
routes.get('/posts', isLoggedUser,
|
2019-09-03 08:40:10 +00:00
|
|
|
cacheSuccesses('24 hours'),
|
2019-05-09 16:23:54 +00:00
|
|
|
FieldMiddleware.middleware({
|
2019-05-23 09:40:50 +00:00
|
|
|
invalidFields: ['user', 'createdAt']
|
2019-05-09 16:23:54 +00:00
|
|
|
}),
|
|
|
|
|
PaginateMiddleware.middleware(),
|
2019-08-27 12:07:17 +00:00
|
|
|
SortMiddleware.middleware({ default: "-date" }),
|
2019-08-20 21:28:48 +00:00
|
|
|
blogController.find({
|
|
|
|
|
scopes: ['defaultScope'],
|
|
|
|
|
})
|
|
|
|
|
);
|
2019-04-24 21:01:54 +00:00
|
|
|
|
2019-05-23 09:40:50 +00:00
|
|
|
routes.get('/posts/:id', isLoggedUser,
|
2019-09-03 08:40:10 +00:00
|
|
|
cacheSuccesses('24 hours'),
|
2019-05-09 16:23:54 +00:00
|
|
|
FieldMiddleware.middleware({
|
|
|
|
|
invalidFields: ['updatedAt', 'createdAt']
|
|
|
|
|
}),
|
|
|
|
|
//PaginateMiddleware.middleware(),
|
|
|
|
|
//SortMiddleware.middleware({ default: "date" }),
|
2019-07-24 14:50:41 +00:00
|
|
|
blogController.findOne()
|
|
|
|
|
);
|
2019-04-24 21:01:54 +00:00
|
|
|
|
2019-05-23 09:40:50 +00:00
|
|
|
routes.get('/posts/:id/comments', isLoggedUser,
|
|
|
|
|
PaginateMiddleware.middleware(),
|
2019-08-27 12:07:17 +00:00
|
|
|
SortMiddleware.middleware({ default: "-date" }),
|
2019-05-23 09:40:50 +00:00
|
|
|
blogController.getPostComments);
|
|
|
|
|
|
|
|
|
|
|
2019-08-20 21:28:48 +00:00
|
|
|
/********************************************************************************************************
|
|
|
|
|
* ADMINISTRACIÓN
|
|
|
|
|
*********************************************************************************************************
|
|
|
|
|
*/
|
|
|
|
|
// Todos los posts
|
|
|
|
|
routes.get('/admin/posts',
|
|
|
|
|
isAdministratorUser,
|
|
|
|
|
SortMiddleware.middleware({ default: "-date" }),
|
|
|
|
|
blogController.find({
|
2019-08-21 14:04:34 +00:00
|
|
|
scopes: ['includeMultimedias', 'includeCategories'],
|
2019-08-20 21:28:48 +00:00
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
|
2019-08-21 11:21:15 +00:00
|
|
|
routes.get('/admin/posts/:id', isLoggedUser,
|
|
|
|
|
isAdministratorUser,
|
2019-08-21 14:04:34 +00:00
|
|
|
blogController.findOne({
|
|
|
|
|
scopes: ['includeMultimedias', 'includeCategories'],
|
|
|
|
|
})
|
2019-08-21 11:21:15 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
routes.get('/admin/posts/:id/comments', isLoggedUser,
|
|
|
|
|
isAdministratorUser,
|
|
|
|
|
(req, res, next) => {
|
|
|
|
|
req.params.association = 'comments';
|
|
|
|
|
next();
|
|
|
|
|
},
|
|
|
|
|
blogController.find()
|
|
|
|
|
);
|
|
|
|
|
|
2019-08-21 18:56:45 +00:00
|
|
|
routes.post('/admin/posts', isAdministratorUser, blogController.create());
|
|
|
|
|
routes.put('/admin/posts/:id', isAdministratorUser, blogController.update());
|
|
|
|
|
routes.delete('/admin/posts/:id', isAdministratorUser, blogController.delete());
|
2019-08-20 21:28:48 +00:00
|
|
|
|
2019-04-15 15:58:58 +00:00
|
|
|
module.exports = routes;
|