ff-admin-server/src/routes/index.ts

47 lines
1.5 KiB
TypeScript
Raw Normal View History

import express from "express";
2024-08-25 13:36:19 +02:00
import type { Express } from "express";
import cors from "cors";
2024-08-25 13:36:19 +02:00
import allowSetup from "../middleware/allowSetup";
import authenticate from "../middleware/authenticate";
2024-08-25 13:36:19 +02:00
import errorHandler from "../middleware/errorHandler";
2024-10-27 11:47:13 +01:00
import publicAvailable from "./public";
2024-08-25 13:36:19 +02:00
import setup from "./setup";
2024-11-23 14:25:31 +01:00
import invite from "./invite";
2024-11-23 12:11:19 +01:00
import reset from "./reset";
import auth from "./auth";
2024-09-01 14:55:05 +02:00
import admin from "./admin/index";
2024-11-20 09:32:43 +01:00
import user from "./user";
2025-01-11 14:45:37 +01:00
import detectPWA from "../middleware/detectPWA";
2025-01-27 15:16:12 +01:00
import webapi from "./webapi";
2025-01-22 09:27:15 +01:00
import authenticateAPI from "../middleware/authenticateAPI";
2025-01-23 11:21:54 +01:00
import server from "./server";
import PermissionHelper from "../helpers/permissionHelper";
2025-01-27 15:16:12 +01:00
import preventWebapiAccess from "../middleware/preventWebApiAccess";
export default (app: Express) => {
app.set("query parser", "extended");
app.use(express.json());
app.use(
express.urlencoded({
extended: true,
})
);
app.use(cors());
app.options("*", cors());
2025-01-11 14:45:37 +01:00
app.use(detectPWA);
2024-11-27 17:06:41 +01:00
app.use("/api/public", publicAvailable);
2025-01-27 15:16:12 +01:00
app.use("/api/setup", preventWebapiAccess, allowSetup, setup);
app.use("/api/reset", preventWebapiAccess, reset);
app.use("/api/invite", preventWebapiAccess, invite);
app.use("/api/auth", preventWebapiAccess, auth);
app.use("/api/webapi", authenticateAPI, webapi);
app.use(authenticate);
2024-11-27 17:06:41 +01:00
app.use("/api/admin", admin);
2025-01-27 15:16:12 +01:00
app.use("/api/user", preventWebapiAccess, user);
app.use("/api/server", preventWebapiAccess, PermissionHelper.isAdminMiddleware(), server);
app.use(errorHandler);
};