import { Router, type IRouter, type Request, type Response } from "express"; import healthRouter from "./health"; import meRouter from "./me"; import subscriptionRouter from "./subscription"; import paypalRouter from "./paypal"; import savedListsRouter from "./saved-lists"; import adminRouter from "./admin"; import eventsRouter from "./events"; import { db, appConfigTable } from "@workspace/db"; import { eq } from "drizzle-orm"; const router: IRouter = Router(); router.use(healthRouter); router.use("/me", meRouter); router.use("/subscription", subscriptionRouter); router.use("/paypal", paypalRouter); router.use("/saved-lists", savedListsRouter); router.use("/admin", adminRouter); router.use("/events", eventsRouter); router.get("/extension-update", async (req: Request, res: Response) => { try { const rows = await db.select().from(appConfigTable).where( eq(appConfigTable.key, "extension_update_available") ); const vRows = await db.select().from(appConfigTable).where( eq(appConfigTable.key, "extension_update_version") ); const mRows = await db.select().from(appConfigTable).where( eq(appConfigTable.key, "extension_update_message") ); res.json({ updateAvailable: rows[0]?.value === "true", version: vRows[0]?.value ?? null, message: mRows[0]?.value ?? null, }); } catch { res.json({ updateAvailable: false, version: null, message: null }); } }); export default router;