link.routes.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. const { Router } = require("express");
  2. const asyncHandler = require("express-async-handler");
  3. const cors = require("cors");
  4. const validators = require("../handlers/validators.handler");
  5. const helpers = require("../handlers/helpers.handler");
  6. const locals = require("../handlers/locals.handler");
  7. const link = require("../handlers/links.handler");
  8. const auth = require("../handlers/auth.handler");
  9. const env = require("../env");
  10. const router = Router();
  11. router.get(
  12. "/",
  13. helpers.viewTemplate("partials/links/table"),
  14. asyncHandler(auth.apikey),
  15. asyncHandler(auth.jwt),
  16. helpers.parseQuery,
  17. asyncHandler(link.get)
  18. );
  19. router.post(
  20. "/",
  21. cors(),
  22. helpers.viewTemplate("partials/shortener"),
  23. asyncHandler(auth.apikey),
  24. asyncHandler(env.DISALLOW_ANONYMOUS_LINKS ? auth.jwt : auth.jwtLoose),
  25. asyncHandler(auth.cooldown),
  26. locals.createLink,
  27. validators.createLink,
  28. asyncHandler(helpers.verify),
  29. asyncHandler(link.create)
  30. );
  31. router.patch(
  32. "/:id",
  33. helpers.viewTemplate("partials/links/edit"),
  34. asyncHandler(auth.apikey),
  35. asyncHandler(auth.jwt),
  36. locals.editLink,
  37. validators.editLink,
  38. asyncHandler(helpers.verify),
  39. asyncHandler(link.edit)
  40. );
  41. router.delete(
  42. "/:id",
  43. helpers.viewTemplate("partials/links/dialog/delete"),
  44. asyncHandler(auth.apikey),
  45. asyncHandler(auth.jwt),
  46. validators.deleteLink,
  47. asyncHandler(helpers.verify),
  48. asyncHandler(link.remove)
  49. );
  50. router.post(
  51. "/admin/ban/:id",
  52. helpers.viewTemplate("partials/links/dialog/ban"),
  53. asyncHandler(auth.apikey),
  54. asyncHandler(auth.jwt),
  55. asyncHandler(auth.admin),
  56. validators.banLink,
  57. asyncHandler(helpers.verify),
  58. asyncHandler(link.ban)
  59. );
  60. // router.get(
  61. // "/:id/stats",
  62. // asyncHandler(auth.apikey),
  63. // asyncHandler(auth.jwt),
  64. // validators.getStats,
  65. // asyncHandler(link.stats)
  66. // );
  67. // router.post(
  68. // "/:id/protected",
  69. // validators.redirectProtected,
  70. // asyncHandler(helpers.verify),
  71. // asyncHandler(link.redirectProtected)
  72. // );
  73. // router.post(
  74. // "/report",
  75. // validators.reportLink,
  76. // asyncHandler(helpers.verify),
  77. // asyncHandler(link.report)
  78. // );
  79. module.exports = router;