app2-api/modules/entities/entity.routes.js
2019-10-30 11:35:02 +01:00

97 lines
2.7 KiB
JavaScript

const routes = require('express').Router();
const { cacheSuccesses } = require('../../middlewares/cache');
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 entityValidation = require('./entity.validations');
const entityController = require('./entity.controller');
const entityTypeController = require('./entity_type.controller');
const generalInvalidFields = [
'state', 'contact_person', 'contact_email', 'createdAt', 'updatedAt'
];
routes.get ('/entities/colleges',
//cacheSuccesses('24 hours'),
// PaginateMiddleware.middleware(),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
SortMiddleware.middleware({ default: "name" }),
entityController.find({
scopes: ['defaultScope', 'onlyColleges'],
}),
);
routes.get ('/entities/partners',
cacheSuccesses('24 hours'),
// PaginateMiddleware.middleware(),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields
}),
SortMiddleware.middleware({ default: "name" }),
entityController.find({
scopes: ['defaultScope', 'onlyPartners'],
}),
);
/********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
routes.get('/admin/entities',
isAdministratorUser,
cacheSuccesses('24 hours'),
// FieldMiddleware.middleware({
// invalidFields: generalInvalidFields
// }),
// PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
entityController.find(),
);
routes.get('/admin/entities/partners/:id',
//isAdministratorUser,
entityController.findOne(),
);
routes.get('/admin/entities/:id',
//isAdministratorUser,
entityController.findOne(),
);
routes.get('/admin/entitytypes/',
//isAdministratorUser,
entityTypeController.find(),
);
routes.put('/admin/entities/:id',
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.update(),
);
routes.post('/admin/entities',
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.create(),
);
routes.post('/admin/entities/:id',
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.delete(),
);
module.exports = routes;