app2-api/modules/entities/entity.routes.js

116 lines
3.0 KiB
JavaScript
Raw Normal View History

const routes = require("express").Router();
2019-07-08 11:11:40 +00:00
const { cacheSuccesses } = require("../../middlewares/cache");
const { isAdministratorUser, isLoggedUser } = require("../../middlewares/accessValidator");
const SchemaValidator = require("../../middlewares/schemaValidator");
2019-07-08 11:11:40 +00:00
const PaginateMiddleware = require("../../middlewares/paginate");
const FieldMiddleware = require("../../middlewares/fields");
const SortMiddleware = require("../../middlewares/sort");
2019-07-08 11:11:40 +00:00
//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("1 hours"),
// PaginateMiddleware.middleware(),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields,
}),
SortMiddleware.middleware({ default: "name" }),
(req, res, next) => {
if (req.query && req.query.country) {
if (!["ES", "MX"].includes(req.query.country)) {
delete req.query["country"];
}
}
next();
},
entityController.find({
scopes: ["defaultScope", "onlyColleges"],
})
2019-07-10 17:26:22 +00:00
);
routes.get(
"/entities/partners",
cacheSuccesses("1 hours"),
// PaginateMiddleware.middleware(),
FieldMiddleware.middleware({
invalidFields: generalInvalidFields,
}),
SortMiddleware.middleware({ default: "name" }),
(req, res, next) => {
if (req.query && req.query.country) {
if (!["ES", "MX"].includes(req.query.country)) {
delete req.query["country"];
}
}
next();
},
entityController.find({
scopes: ["defaultScope", "onlyPartners"],
})
2019-07-10 17:26:22 +00:00
);
2019-08-15 18:09:50 +00:00
/********************************************************************************************************
* ADMINISTRACIÓN
*********************************************************************************************************
*/
routes.get(
"/admin/entities",
isAdministratorUser,
// FieldMiddleware.middleware({
// invalidFields: generalInvalidFields
// }),
// PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "name" }),
entityController.find()
2019-10-29 16:32:27 +00:00
);
routes.get(
"/admin/entities/partners/:id",
//isAdministratorUser,
entityController.findOne()
2019-08-15 18:09:50 +00:00
);
2019-07-08 11:11:40 +00:00
routes.get(
"/admin/entities/:id",
//isAdministratorUser,
entityController.findOne({
scopes: ["withEntityTypes"],
})
2019-10-21 15:05:09 +00:00
);
routes.get(
"/admin/entitytypes/",
//isAdministratorUser,
entityTypeController.find()
2019-10-21 16:17:18 +00:00
);
routes.put(
"/admin/entities/:id",
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.update()
2019-10-28 10:50:54 +00:00
);
routes.post(
"/admin/entities",
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.create()
2019-10-30 10:35:02 +00:00
);
routes.post(
"/admin/entities/:id",
isAdministratorUser,
//SchemaValidator(eventValidation.ReservationInputType, true),
entityController.delete()
2019-10-30 10:35:02 +00:00
);
module.exports = routes;