/** * Markdown Docs Route */ const express = require("express"); const fs = require("fs"); const path = require("path"); const docsSession = require("../middleware/docsSession.middleware"); const { sensitiveLimiter } = require("../middleware/rateLimit.middleware"); const router = express.Router(); const DOCS_DIR = path.join(__dirname, "../../Documentation"); router.get("/markdown-files", docsSession, (req, res) => { fs.readdir(DOCS_DIR, (err, files) => { if (err) { return res.status(500).json({ success: false, message: "Failed to read documentation folder", error: err.message, }); } const mdFiles = files.filter((file) => file.endsWith(".md")); res.json({ success: true, data: mdFiles, }); }); }); router.get("/view/:file", docsSession, (req, res) => { const filePath = path.join(DOCS_DIR, req.params.file); if (!req.params.file.endsWith(".md")) { return res.status(400).send("Only markdown files allowed"); } // basic protection against path traversal if (!filePath.startsWith(DOCS_DIR)) { return res.status(400).send("Invalid path"); } res.sendFile(filePath); }); // Docs login (simple) router.post("/login", sensitiveLimiter, (_req, res) => res.status(410).json({ success: false, error: { code: "DEPRECATED", message: "Use an authenticated ADMIN or SUPER_ADMIN session" } })); router.post("/logout", (_req, res) => res.status(410).json({ success: false, error: { code: "DEPRECATED", message: "Use the authentication logout endpoint" } })); module.exports = router;