2024-09-27 21:39:03 -04:00
|
|
|
import { Router } from "express";
|
2024-10-02 00:04:40 -04:00
|
|
|
import * as gerbil from "@server/routers/gerbil";
|
|
|
|
import * as traefik from "@server/routers/traefik";
|
2025-01-30 12:25:59 -05:00
|
|
|
import * as resource from "./resource";
|
|
|
|
import * as badger from "./badger";
|
2024-11-27 00:07:40 -05:00
|
|
|
import * as auth from "@server/routers/auth";
|
2025-03-20 22:16:02 -04:00
|
|
|
import * as supporterKey from "@server/routers/supporterKey";
|
2024-10-02 00:04:40 -04:00
|
|
|
import HttpCode from "@server/types/HttpCode";
|
2025-03-20 22:16:02 -04:00
|
|
|
import {
|
|
|
|
verifyResourceAccess,
|
|
|
|
verifySessionUserMiddleware
|
|
|
|
} from "@server/middlewares";
|
2024-09-27 21:39:03 -04:00
|
|
|
|
2024-10-02 00:04:40 -04:00
|
|
|
// Root routes
|
|
|
|
const internalRouter = Router();
|
2024-09-27 21:39:03 -04:00
|
|
|
|
2024-10-02 00:04:40 -04:00
|
|
|
internalRouter.get("/", (_, res) => {
|
|
|
|
res.status(HttpCode.OK).json({ message: "Healthy" });
|
2024-09-27 21:39:03 -04:00
|
|
|
});
|
|
|
|
|
2024-10-02 00:04:40 -04:00
|
|
|
internalRouter.get("/traefik-config", traefik.traefikConfigProvider);
|
2025-01-28 22:26:45 -05:00
|
|
|
|
2024-11-27 00:07:40 -05:00
|
|
|
internalRouter.get(
|
|
|
|
"/resource-session/:resourceId/:token",
|
2025-01-26 14:42:02 -05:00
|
|
|
auth.checkResourceSession
|
|
|
|
);
|
|
|
|
|
|
|
|
internalRouter.post(
|
|
|
|
`/resource/:resourceId/get-exchange-token`,
|
|
|
|
verifySessionUserMiddleware,
|
|
|
|
verifyResourceAccess,
|
2025-01-30 12:25:59 -05:00
|
|
|
resource.getExchangeToken
|
2024-11-27 00:07:40 -05:00
|
|
|
);
|
2024-09-28 12:14:44 -04:00
|
|
|
|
2025-03-20 22:16:02 -04:00
|
|
|
internalRouter.get(
|
|
|
|
`/supporter-key/visible`,
|
|
|
|
supporterKey.isSupporterKeyVisible
|
|
|
|
);
|
|
|
|
|
2024-10-02 00:04:40 -04:00
|
|
|
// Gerbil routes
|
|
|
|
const gerbilRouter = Router();
|
2024-10-06 18:08:26 -04:00
|
|
|
internalRouter.use("/gerbil", gerbilRouter);
|
2024-09-28 22:50:10 -04:00
|
|
|
|
2024-10-26 17:02:11 -04:00
|
|
|
gerbilRouter.post("/get-config", gerbil.getConfig);
|
2024-10-02 00:04:40 -04:00
|
|
|
gerbilRouter.post("/receive-bandwidth", gerbil.receiveBandwidth);
|
|
|
|
|
2024-10-06 18:08:26 -04:00
|
|
|
// Badger routes
|
|
|
|
const badgerRouter = Router();
|
|
|
|
internalRouter.use("/badger", badgerRouter);
|
|
|
|
|
2025-01-30 12:25:59 -05:00
|
|
|
badgerRouter.post("/verify-session", badger.verifyResourceSession);
|
|
|
|
badgerRouter.post("/exchange-session", badger.exchangeSession);
|
2024-10-02 00:04:40 -04:00
|
|
|
|
|
|
|
export default internalRouter;
|