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

74 lines
2.3 KiB
JavaScript
Raw Normal View History

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;