()
| 66 | * Returns separate routers for page routes (/admin/*) and API routes (/api/admin/*) |
| 67 | */ |
| 68 | export function createAdminRouter(): { pageRouter: Router; apiRouter: Router } { |
| 69 | const pageRouter = Router(); |
| 70 | const apiRouter = Router(); |
| 71 | |
| 72 | // ========================================================================= |
| 73 | // ADMIN PAGE ROUTES (mounted at /admin) |
| 74 | // ========================================================================= |
| 75 | |
| 76 | pageRouter.get("/api-keys", requireAuth, requireAdmin, (req, res) => { |
| 77 | serveHtmlWithConfig(req, res, "admin-api-keys.html").catch((err) => { |
| 78 | logger.error({ err }, "Error serving admin API keys page"); |
| 79 | res.status(500).send("Internal server error"); |
| 80 | }); |
| 81 | }); |
| 82 | |
| 83 | pageRouter.get("/domain-health", requireAuth, requireAdmin, (req, res) => { |
| 84 | serveHtmlWithConfig(req, res, "admin-domain-health.html").catch((err) => { |
| 85 | logger.error({ err }, "Error serving domain health page"); |
| 86 | res.status(500).send("Internal server error"); |
| 87 | }); |
| 88 | }); |
| 89 | |
| 90 | pageRouter.get("/policies", requireAuth, requireAdmin, (req, res) => { |
| 91 | serveHtmlWithConfig(req, res, "admin-policies.html").catch((err) => { |
| 92 | logger.error({ err }, "Error serving policies page"); |
| 93 | res.status(500).send("Internal server error"); |
| 94 | }); |
| 95 | }); |
| 96 | |
| 97 | pageRouter.get("/people", requireAuth, requireAdmin, (req, res) => { |
| 98 | serveHtmlWithConfig(req, res, "admin-people.html").catch((err) => { |
| 99 | logger.error({ err }, "Error serving people page"); |
| 100 | res.status(500).send("Internal server error"); |
| 101 | }); |
| 102 | }); |
| 103 | |
| 104 | pageRouter.get("/simulations", requireAuth, requireAdmin, (req, res) => { |
| 105 | serveHtmlWithConfig(req, res, "admin-simulations.html").catch((err) => { |
| 106 | logger.error({ err }, "Error serving simulations page"); |
| 107 | res.status(500).send("Internal server error"); |
| 108 | }); |
| 109 | }); |
| 110 | |
| 111 | pageRouter.get("/network-health", requireAuth, requireAdmin, (req, res) => { |
| 112 | serveHtmlWithConfig(req, res, "admin-network-health.html").catch((err) => { |
| 113 | logger.error({ err }, "Error serving network health page"); |
| 114 | res.status(500).send("Internal server error"); |
| 115 | }); |
| 116 | }); |
| 117 | |
| 118 | // Redirects from old newsletter admin URLs |
| 119 | pageRouter.get("/digest", (_req, res) => res.redirect(301, "/admin/newsletters/the_prompt")); |
| 120 | pageRouter.get("/the-build", (_req, res) => res.redirect(301, "/admin/newsletters/the_build")); |
| 121 | |
| 122 | pageRouter.get("/newsletters/:id", requireAuth, requireAdmin, (req, res) => { |
| 123 | serveHtmlWithConfig(req, res, "admin-newsletter.html").catch((err) => { |
| 124 | logger.error({ err }, "Error serving newsletter admin page"); |
| 125 | res.status(500).send("Internal server error"); |
no test coverage detected