| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { Router } from "express";
- import asyncHandler from "express-async-handler";
- import cors from "cors";
- import * as validators from "../handlers/validators";
- import * as helpers from "../handlers/helpers";
- import * as link from "../handlers/links";
- import * as auth from "../handlers/auth";
- import env from "../env";
- const router = Router();
- router.get(
- "/",
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- helpers.query,
- asyncHandler(link.get)
- );
- router.post(
- "/",
- cors(),
- asyncHandler(auth.apikey),
- asyncHandler(env.DISALLOW_ANONYMOUS_LINKS ? auth.jwt : auth.jwtLoose),
- asyncHandler(auth.recaptcha),
- asyncHandler(auth.cooldown),
- validators.createLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.create)
- );
- router.patch(
- "/:id",
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- validators.editLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.edit)
- );
- router.delete(
- "/:id",
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- validators.deleteLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.remove)
- );
- router.get(
- "/:id/stats",
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- validators.getStats,
- asyncHandler(link.stats)
- );
- router.post(
- "/:id/protected",
- validators.redirectProtected,
- asyncHandler(helpers.verify),
- asyncHandler(link.redirectProtected)
- );
- router.post(
- "/report",
- validators.reportLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.report)
- );
- router.post(
- "/admin/ban/:id",
- asyncHandler(auth.apikey),
- asyncHandler(auth.jwt),
- asyncHandler(auth.admin),
- validators.banLink,
- asyncHandler(helpers.verify),
- asyncHandler(link.ban)
- );
- export default router;
|