index.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import asyncHandler from "express-async-handler";
  2. import { Router } from "express";
  3. import cors from "cors";
  4. import {
  5. validateUrl,
  6. ipCooldownCheck
  7. } from "./controllers/validateBodyController";
  8. import * as auth from "../handlers/auth";
  9. import * as link from "./controllers/linkController";
  10. const router = Router();
  11. /* URL shortener */
  12. router.post(
  13. "/url/submit",
  14. cors(),
  15. asyncHandler(auth.apikey),
  16. asyncHandler(auth.jwtLoose),
  17. asyncHandler(auth.recaptcha),
  18. asyncHandler(validateUrl),
  19. asyncHandler(ipCooldownCheck),
  20. asyncHandler(link.shortener)
  21. );
  22. router.post(
  23. "/url/deleteurl",
  24. asyncHandler(auth.apikey),
  25. asyncHandler(auth.jwt),
  26. asyncHandler(link.deleteUserLink)
  27. );
  28. router.get(
  29. "/url/geturls",
  30. asyncHandler(auth.apikey),
  31. asyncHandler(auth.jwt),
  32. asyncHandler(link.getUserLinks)
  33. );
  34. router.post(
  35. "/url/customdomain",
  36. asyncHandler(auth.jwt),
  37. asyncHandler(link.setCustomDomain)
  38. );
  39. router.delete(
  40. "/url/customdomain",
  41. asyncHandler(auth.jwt),
  42. asyncHandler(link.deleteCustomDomain)
  43. );
  44. router.get(
  45. "/url/stats",
  46. asyncHandler(auth.apikey),
  47. asyncHandler(auth.jwt),
  48. asyncHandler(link.getLinkStats)
  49. );
  50. router.post("/url/requesturl", asyncHandler(link.goToLink));
  51. router.post("/url/report", asyncHandler(link.reportLink));
  52. router.post(
  53. "/url/admin/ban",
  54. asyncHandler(auth.apikey),
  55. asyncHandler(auth.jwt),
  56. asyncHandler(auth.admin),
  57. asyncHandler(link.ban)
  58. );
  59. export default router;