account.router.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import * as express from "express";
  2. import { wrap } from "../../common/exceptions.js";
  3. import authorizeRequest from "../../middlewares/authorizeRequest.middleware.js";
  4. import ROLE from "../users/role.model.js";
  5. import accountController from "./account.controller.js";
  6. // Logs roles at setup time, and logs path at request time before calling authorizeRequest
  7. function logAndWrapAuthorize(roles) {
  8. console.log(`[Route Setup] Required Roles: ${roles.map(r => r.name || r).join(", ")}`);
  9. return wrap((req, res, next) => {
  10. console.log(`[Route Access] Path: ${req.originalUrl}`);
  11. return authorizeRequest(roles)(req, res, next);
  12. });
  13. }
  14. export default express
  15. .Router()
  16. .get("/:id", [
  17. logAndWrapAuthorize([ROLE.ADMIN, ROLE.SUPER_ADMIN]),
  18. wrap(accountController.byId),
  19. ])
  20. .put("/:id", [
  21. logAndWrapAuthorize([ROLE.ADMIN, ROLE.SUPER_ADMIN]),
  22. wrap(accountController.update),
  23. ])
  24. // New endpoint for setting trial periods - restricted to SUPER_ADMIN only
  25. .put("/:id/trial", [
  26. logAndWrapAuthorize([ROLE.SUPER_ADMIN]),
  27. wrap(accountController.setTrialPeriod),
  28. ]);