46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import express from "express";
|
|
import type { Express } from "express";
|
|
import cors from "cors";
|
|
|
|
import allowSetup from "../middleware/allowSetup";
|
|
import authenticate from "../middleware/authenticate";
|
|
import errorHandler from "../middleware/errorHandler";
|
|
|
|
import publicAvailable from "./public";
|
|
import setup from "./setup";
|
|
import invite from "./invite";
|
|
import reset from "./reset";
|
|
import auth from "./auth";
|
|
import admin from "./admin/index";
|
|
import user from "./user";
|
|
import detectPWA from "../middleware/detectPWA";
|
|
import webapi from "./webapi";
|
|
import authenticateAPI from "../middleware/authenticateAPI";
|
|
import server from "./server";
|
|
import PermissionHelper from "../helpers/permissionHelper";
|
|
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());
|
|
|
|
app.use(detectPWA);
|
|
app.use("/api/public", publicAvailable);
|
|
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);
|
|
app.use("/api/admin", admin);
|
|
app.use("/api/user", preventWebapiAccess, user);
|
|
app.use("/api/server", preventWebapiAccess, PermissionHelper.isAdminMiddleware(), server);
|
|
app.use(errorHandler);
|
|
};
|