| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- const { Router } = require("express");
- const asyncHandler = require("express-async-handler");
- const cors = require("cors");
- const validators = require("../handlers/validators.handler");
- const helpers = require("../handlers/helpers.handler");
- const locals = require("../handlers/locals.handler");
- const link = require("../handlers/links.handler");
- const auth = require("../handlers/auth.handler");
- const env = require("../env");
- const router = Router();
- router.get(
- "/",
- helpers.viewTemplate("partials/links/table"),
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- helpers.parseQuery,
- asyncHandler(link.get)
- );
- router.post(
- "/",
- cors(),
- helpers.viewTemplate("partials/shortener"),
- asyncHandler(auth.apikey),
- asyncHandler(env.DISALLOW_ANONYMOUS_LINKS ? auth.jwt : auth.jwtLoose),
- asyncHandler(auth.cooldown),
- locals.createLink,
- validators.createLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.create)
- );
- router.patch(
- "/:id",
- helpers.viewTemplate("partials/links/edit"),
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- locals.editLink,
- validators.editLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.edit)
- );
- router.delete(
- "/:id",
- helpers.viewTemplate("partials/links/dialog/delete"),
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- validators.deleteLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.remove)
- );
- router.post(
- "/admin/ban/:id",
- helpers.viewTemplate("partials/links/dialog/ban"),
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- asyncHandler(auth.admin),
- validators.banLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.ban)
- );
- router.get(
- "/:id/stats",
- helpers.viewTemplate("partials/stats"),
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- validators.getStats,
- asyncHandler(helpers.verify),
- asyncHandler(link.stats)
- );
- router.post(
- "/:id/protected",
- helpers.viewTemplate("partials/protected/form"),
- locals.protected,
- validators.redirectProtected,
- asyncHandler(helpers.verify),
- asyncHandler(link.redirectProtected)
- );
- router.post(
- "/report",
- helpers.viewTemplate("partials/report/form"),
- validators.reportLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.report)
- );
- module.exports = router;
|