diff --git a/src/server/index.ts b/src/server/index.ts index cf9e625..b6a663b 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -12,6 +12,7 @@ import { mcpRoutes } from "./mcp/index.ts"; import { requireAuth } from "./middleware/auth.ts"; import { createRateLimit } from "./middleware/rateLimit.ts"; import { accountRoutes } from "./routes/account.ts"; +import { adminRoutes } from "./routes/admin.ts"; import { authRoutes } from "./routes/auth.ts"; import { categoryRoutes } from "./routes/categories.ts"; import { communityPriceRoutes } from "./routes/community-prices.ts"; @@ -280,6 +281,7 @@ app.use("/api/*", async (c, next) => { // API routes app.route("/api/account", accountRoutes); +app.route("/api/admin", adminRoutes); app.route("/api/auth", authRoutes); app.route("/api/items", itemRoutes); app.route("/api/categories", categoryRoutes); diff --git a/src/server/routes/admin.ts b/src/server/routes/admin.ts new file mode 100644 index 0000000..20885e5 --- /dev/null +++ b/src/server/routes/admin.ts @@ -0,0 +1,16 @@ +import { Hono } from "hono"; +import { requireAdmin, requireAuth } from "../middleware/auth.ts"; + +type Env = { Variables: { db?: any; userId?: number } }; + +const app = new Hono(); + +// All /api/admin/* routes require authentication + admin role +app.use("/*", requireAuth, requireAdmin); + +// Health check / ping for admin access verification +app.get("/", async (c) => { + return c.json({ ok: true }); +}); + +export { app as adminRoutes };