From fefe7cd9e91b2dc58e93ebc35dd6c5ec68317b78 Mon Sep 17 00:00:00 2001 From: Bruce Berrios <58147810+Bruception@users.noreply.github.com> Date: Wed, 26 Jan 2022 17:42:53 -0500 Subject: [PATCH] Refactor routing configuration (#2356) by Bruception * Refactor adding routes * Fix lint * Move root route * Fix lint --- backend/api/routes/index.js | 27 +++++++++++++++++++++++++++ backend/server.js | 28 ++-------------------------- 2 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 backend/api/routes/index.js diff --git a/backend/api/routes/index.js b/backend/api/routes/index.js new file mode 100644 index 000000000..0057624c5 --- /dev/null +++ b/backend/api/routes/index.js @@ -0,0 +1,27 @@ +const pathOverride = process.env.API_PATH_OVERRIDE; +const BASE_ROUTE = pathOverride ? `/${pathOverride}` : ""; + +const API_ROUTE_MAP = { + "/user": require("./user"), + "/config": require("./config"), + "/results": require("./result"), + "/presets": require("./preset"), + "/quote-ratings": require("./quote-ratings"), + "/psa": require("./psa"), + "/leaderboard": require("./leaderboards"), + "/new-quotes": require("./new-quotes"), +}; + +function addApiRoutes(app) { + app.get("/", (req, res) => { + res.status(200).json({ message: "OK" }); + }); + + Object.keys(API_ROUTE_MAP).forEach((route) => { + const apiRoute = `${BASE_ROUTE}${route}`; + const router = API_ROUTE_MAP[route]; + app.use(apiRoute, router); + }); +} + +module.exports = addApiRoutes; diff --git a/backend/server.js b/backend/server.js index 66aeefcce..863b01103 100644 --- a/backend/server.js +++ b/backend/server.js @@ -10,6 +10,7 @@ const Logger = require("./handlers/logger.js"); const serviceAccount = require("./credentials/serviceAccountKey.json"); const { connectDB, mongoDB } = require("./init/mongodb"); const BotDAO = require("./dao/bot"); +const addApiRoutes = require("./api/routes"); const PORT = process.env.PORT || 5005; @@ -29,32 +30,7 @@ app.use((req, res, next) => { } }); -let startingPath = ""; - -if (process.env.API_PATH_OVERRIDE) { - startingPath = "/" + process.env.API_PATH_OVERRIDE; -} - -app.get("/", (req, res) => { - res.status(200).json({ message: "OK" }); -}); - -const userRouter = require("./api/routes/user"); -app.use(startingPath + "/user", userRouter); -const configRouter = require("./api/routes/config"); -app.use(startingPath + "/config", configRouter); -const resultRouter = require("./api/routes/result"); -app.use(startingPath + "/results", resultRouter); -const presetRouter = require("./api/routes/preset"); -app.use(startingPath + "/presets", presetRouter); -const quoteRatings = require("./api/routes/quote-ratings"); -app.use(startingPath + "/quote-ratings", quoteRatings); -const psaRouter = require("./api/routes/psa"); -app.use(startingPath + "/psa", psaRouter); -const leaderboardsRouter = require("./api/routes/leaderboards"); -app.use(startingPath + "/leaderboard", leaderboardsRouter); -const newQuotesRouter = require("./api/routes/new-quotes"); -app.use(startingPath + "/new-quotes", newQuotesRouter); +addApiRoutes(app); //DO NOT REMOVE NEXT, EVERYTHING WILL EXPLODE app.use(function (e, req, res, next) {