app2-api/modules/comments/comment.routes.js

110 lines
3.1 KiB
JavaScript
Raw Normal View History

2019-07-26 14:50:53 +00:00
const routes = require('express').Router();
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
const SchemaValidator = require('../../middlewares/schemaValidator');
const PaginateMiddleware = require('../../middlewares/paginate');
const FieldMiddleware = require('../../middlewares/fields');
const SortMiddleware = require('../../middlewares/sort');
2019-08-22 17:09:32 +00:00
const commentValidation = require('./comment.validations');
2019-07-26 14:50:53 +00:00
const commentController = require('./comment.controller');
const generalInvalidFields = [
];
routes.get('/comments',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope'],
}),
);
routes.get('/comments/events',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope', 'onlyEvents'],
}),
);
routes.get('/comments/speakers',
isLoggedUser,
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope', 'onlySpeakers'],
}),
);
2019-08-22 17:09:32 +00:00
//Crear un comentario
routes.post('/comments',
isLoggedUser,
SchemaValidator(commentValidation.CommentInputType, true),
commentController.create());
//Modificar un comentario
//routes.put('/comments/:id', isLoggedUser, SchemaValidator(commentValidation.CommentInputType, true), commentController.update());
2019-07-26 14:50:53 +00:00
2019-08-19 15:13:27 +00:00
/*********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
2019-08-21 18:04:15 +00:00
routes.get('/admin/comments',
isAdministratorUser,
// PaginateMiddleware.middleware(),
2019-08-22 17:25:50 +00:00
SortMiddleware.middleware({ default: "-createdAt" }),
2019-08-21 18:04:15 +00:00
commentController.find({
scopes: ['defaultScope'],
}),
);
2019-08-19 15:13:27 +00:00
2019-08-21 15:41:05 +00:00
routes.get('/admin/comments/events/:entityId',
isAdministratorUser,
// PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope', 'onlyEvents'],
}),
);
2019-08-21 18:37:58 +00:00
routes.get('/admin/comments/posts/:entityId',
isAdministratorUser,
// PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope', 'onlyPosts'],
}),
);
routes.get('/admin/comments/speakers/:entityId',
isAdministratorUser,
// PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "createdAt" }),
commentController.find({
scopes: ['defaultScope', 'onlySpeakers'],
}),
);
2019-08-21 15:41:05 +00:00
2019-08-19 15:13:27 +00:00
// Borrado
routes.delete('/admin/comments/:id',
isAdministratorUser,
commentController.delete()
);
2019-07-26 14:50:53 +00:00
module.exports = routes;