1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // routes.js
- import passport from "passport";
- import { authenticateSuper, authenticateUsers } from "./common/passport.js";
- import accountRouter from "./api/accounts/account.router.js";
- import authRouter from "./api/auth/auth.router.js";
- import subscriptionRouter from "./api/subscriptions/subscription.router.js";
- import teamRouter from "./api/teams/team.router.js";
- import userRouter from "./api/users/user.router.js";
- import webhookRouter from "./api/webhooks/webhook.router.js";
- import workspaceRouter from "./api/workspaces/workspace.router.js";
- import publicRouter from "./api/public/public.router.js";
- import leadsRouter from "./api/leads/leads.router.js";
- import tokensRouter from "./api/tokens/tokens.router.js";
- import ROLE from "./api/users/role.model.js";
- import authorizeRequest from "./middlewares/authorizeRequest.middleware.js";
- import { setLang } from "./middlewares/lang.middleware.js";
- import authorizeSubscription from "./middlewares/authorizeSubscription.middleware.js";
- // APP ROUTES
- export default function routes(app) {
- // API ROUTES
- app.use("/api/v1/auth", authRouter);
- app.use(
- "/api/v1/users",
- authenticateUsers(), // Now accepts both regular and super admin JWT
- setLang(),
- userRouter
- );
-
- // Modified to use Super Admin authentication for workspaces
- app.use(
- "/api/v1/workspaces",
- authenticateSuper(), // Using Super Admin authentication here
- setLang(),
- workspaceRouter
- );
-
- app.use(
- "/api/v1/accounts",
- authenticateUsers(), // Now accepts both regular and super admin JWT
- setLang(),
- authorizeRequest([ROLE.ADMIN]),
- accountRouter
- );
- app.use("/api/v1/stripe/webhook", webhookRouter);
- app.use("/api/v1/stripe", subscriptionRouter);
- app.use(
- "/api/v1/teams",
- authenticateUsers(), // Now accepts both regular and super admin JWT
- setLang(),
- authorizeRequest([ROLE.ADMIN]),
- teamRouter
- );
-
- // Leads and tokens routes with subscription check
- app.use(
- "/api/v1/leads",
- authenticateUsers(), // Now accepts both regular and super admin JWT
- setLang(),
- authorizeSubscription(),
- leadsRouter
- );
- app.use(
- "/api/v1/tokens",
- authenticateUsers(), // Now accepts both regular and super admin JWT
- setLang(),
- authorizeSubscription(),
- tokensRouter
- );
-
- // Public API routes - no authentication required
- app.use("/api/v1/public", setLang(), publicRouter);
- }
|