user.routes.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. const { Router } = require("express");
  2. const validators = require("../handlers/validators.handler");
  3. const helpers = require("../handlers/helpers.handler");
  4. const asyncHandler = require("../utils/asyncHandler");
  5. const locals = require("../handlers/locals.handler");
  6. const user = require("../handlers/users.handler");
  7. const auth = require("../handlers/auth.handler");
  8. const router = Router();
  9. router.get(
  10. "/",
  11. asyncHandler(auth.apikey),
  12. asyncHandler(auth.jwt),
  13. asyncHandler(user.get)
  14. );
  15. router.get(
  16. "/admin",
  17. locals.viewTemplate("partials/admin/users/table"),
  18. asyncHandler(auth.apikey),
  19. asyncHandler(auth.jwt),
  20. asyncHandler(auth.admin),
  21. helpers.parseQuery,
  22. locals.adminTable,
  23. asyncHandler(user.getAdmin)
  24. );
  25. router.post(
  26. "/admin",
  27. locals.viewTemplate("partials/admin/dialog/create_user"),
  28. asyncHandler(auth.apikey),
  29. asyncHandler(auth.jwt),
  30. asyncHandler(auth.admin),
  31. validators.createUser,
  32. asyncHandler(helpers.verify),
  33. asyncHandler(user.create)
  34. );
  35. router.post(
  36. "/delete",
  37. locals.viewTemplate("partials/settings/delete_account"),
  38. asyncHandler(auth.apikey),
  39. asyncHandler(auth.jwt),
  40. validators.deleteUser,
  41. asyncHandler(helpers.verify),
  42. asyncHandler(user.remove)
  43. );
  44. router.delete(
  45. "/admin/:id",
  46. locals.viewTemplate("partials/admin/dialog/delete_user"),
  47. asyncHandler(auth.apikey),
  48. asyncHandler(auth.jwt),
  49. asyncHandler(auth.admin),
  50. validators.deleteUserByAdmin,
  51. asyncHandler(helpers.verify),
  52. asyncHandler(user.removeByAdmin)
  53. );
  54. router.post(
  55. "/admin/ban/:id",
  56. locals.viewTemplate("partials/admin/dialog/ban_user"),
  57. asyncHandler(auth.apikey),
  58. asyncHandler(auth.jwt),
  59. asyncHandler(auth.admin),
  60. validators.banUser,
  61. asyncHandler(helpers.verify),
  62. asyncHandler(user.ban)
  63. );
  64. module.exports = router;