link.routes.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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.query,
  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.get(
  51. // "/:id/stats",
  52. // asyncHandler(auth.apikey),
  53. // asyncHandler(auth.jwt),
  54. // validators.getStats,
  55. // asyncHandler(link.stats)
  56. // );
  57. // router.post(
  58. // "/:id/protected",
  59. // validators.redirectProtected,
  60. // asyncHandler(helpers.verify),
  61. // asyncHandler(link.redirectProtected)
  62. // );
  63. // router.post(
  64. // "/report",
  65. // validators.reportLink,
  66. // asyncHandler(helpers.verify),
  67. // asyncHandler(link.report)
  68. // );
  69. // router.post(
  70. // "/admin/ban/:id",
  71. // asyncHandler(auth.apikey),
  72. // asyncHandler(auth.jwt),
  73. // asyncHandler(auth.admin),
  74. // validators.banLink,
  75. // asyncHandler(helpers.verify),
  76. // asyncHandler(link.ban)
  77. // );
  78. module.exports = router;