Files
cfw-autumn/server/src/internal/api/apiRouter.ts
2025-10-30 16:26:32 -07:00

75 lines
3.3 KiB
TypeScript

import { Router } from "express";
import { analyticsMiddleware } from "@/middleware/analyticsMiddleware.js";
import { apiAuthMiddleware } from "@/middleware/apiAuthMiddleware.js";
import { expressApiVersionMiddleware } from "@/middleware/expressApiVersionMiddleware.js";
import { pricingMiddleware } from "@/middleware/pricingMiddleware.js";
import { refreshCacheMiddleware } from "@/middleware/refreshCacheMiddleware.js";
import { analyticsRouter } from "../analytics/analyticsRouter.js";
import { attachRouter } from "../customers/attach/attachRouter.js";
import { handleSetupPayment } from "../customers/attach/handleSetupPayment.js";
import cancelRouter from "../customers/cancel/cancelRouter.js";
import { expressCusRouter } from "../customers/cusRouter.js";
import { handleCreateBillingPortal } from "../customers/handlers/handleCreateBillingPortal.js";
import { featureRouter } from "../features/featureRouter.js";
import { internalFeatureRouter } from "../features/internalFeatureRouter.js";
import { migrationRouter } from "../migrations/migrationRouter.js";
import { handleGetOrg } from "../orgs/handlers/handleGetOrg.js";
import { platformRouter } from "../platform/platformLegacy/platformRouter.js";
import { productBetaRouter, productRouter } from "../products/productRouter.js";
import { componentRouter } from "./components/componentRouter.js";
import { entityRouter } from "./entities/entityRouter.js";
// import { checkRouter } from "./entitled/checkRouter.js";
import { invoiceRouter } from "./invoiceRouter.js";
import { redemptionRouter, referralRouter } from "./rewards/referralRouter.js";
import { rewardProgramRouter } from "./rewards/rewardProgramRouter.js";
import rewardRouter from "./rewards/rewardRouter.js";
const apiRouter: Router = Router();
apiRouter.use(apiAuthMiddleware);
apiRouter.use(pricingMiddleware);
apiRouter.use(analyticsMiddleware);
apiRouter.use(expressApiVersionMiddleware as any);
apiRouter.use(refreshCacheMiddleware);
apiRouter.use("/customers", expressCusRouter);
apiRouter.use("/invoices", invoiceRouter);
apiRouter.use("/products", productRouter);
apiRouter.use("/products_beta", productBetaRouter);
apiRouter.use("/components", componentRouter);
apiRouter.use("/rewards", rewardRouter);
apiRouter.use("/features", featureRouter);
apiRouter.use("/internal_features", internalFeatureRouter);
apiRouter.use("/entities", entityRouter);
apiRouter.use("/migrations", migrationRouter);
// REWARDS
apiRouter.use("/reward_programs", rewardProgramRouter);
apiRouter.use("/referrals", referralRouter);
apiRouter.use("/redemptions", redemptionRouter);
// Cus Product
apiRouter.use("", attachRouter);
apiRouter.use("/cancel", cancelRouter);
// apiRouter.use("/entitled", checkRouter);
// apiRouter.use("/check", checkRouter);
// apiRouter.use("/usage", usageRouter);
// apiRouter.use("/events", eventsRouter);
// apiRouter.use("/track", eventsRouter);
apiRouter.post("/setup_payment", handleSetupPayment);
apiRouter.post("/billing_portal", handleCreateBillingPortal);
// Analytics
apiRouter.use("/query", analyticsRouter);
apiRouter.use("/platform", platformRouter);
// // Used for tests...
// apiRouter.post("/organization/stripe", ...handleConnectStripe);
// apiRouter.delete("/organization/stripe", ...handleDeleteStripe);
apiRouter.get("/organization", handleGetOrg);
export { apiRouter };