110 lines
3.1 KiB
JavaScript
110 lines
3.1 KiB
JavaScript
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');
|
|
|
|
const commentValidation = require('./comment.validations');
|
|
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'],
|
|
}),
|
|
);
|
|
|
|
//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());
|
|
|
|
/*********************************************************************************************************
|
|
* ADMINISTRACIÓN
|
|
*********************************************************************************************************
|
|
*/
|
|
routes.get('/admin/comments',
|
|
isAdministratorUser,
|
|
// PaginateMiddleware.middleware(),
|
|
SortMiddleware.middleware({ default: "-createdAt" }),
|
|
commentController.find({
|
|
scopes: ['defaultScope'],
|
|
}),
|
|
);
|
|
|
|
|
|
routes.get('/admin/comments/events/:entityId',
|
|
isAdministratorUser,
|
|
// PaginateMiddleware.middleware(),
|
|
SortMiddleware.middleware({ default: "createdAt" }),
|
|
commentController.find({
|
|
scopes: ['defaultScope', 'onlyEvents'],
|
|
}),
|
|
);
|
|
|
|
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'],
|
|
}),
|
|
);
|
|
|
|
// Borrado
|
|
routes.delete('/admin/comments/:id',
|
|
isAdministratorUser,
|
|
commentController.delete()
|
|
);
|
|
|
|
module.exports = routes; |