import { Hono } from "hono"; import { eq } from "drizzle-orm"; import { db as prodDb } from "../../db/index.ts"; import { settings } from "../../db/schema.ts"; type Env = { Variables: { db?: any } }; const app = new Hono(); app.get("/:key", (c) => { const database = c.get("db") ?? prodDb; const key = c.req.param("key"); const row = database.select().from(settings).where(eq(settings.key, key)).get(); if (!row) return c.json({ error: "Setting not found" }, 404); return c.json(row); }); app.put("/:key", async (c) => { const database = c.get("db") ?? prodDb; const key = c.req.param("key"); const body = await c.req.json<{ value: string }>(); if (!body.value && body.value !== "") { return c.json({ error: "value is required" }, 400); } database .insert(settings) .values({ key, value: body.value }) .onConflictDoUpdate({ target: settings.key, set: { value: body.value } }) .run(); const row = database.select().from(settings).where(eq(settings.key, key)).get(); return c.json(row); }); export { app as settingsRoutes };