import { eq, sql } from 'drizzle-orm'; import useDatabase from '~/composables/useDatabase'; import { explorerContentTable } from '~/db/schema'; export default defineEventHandler(async (e) => { const path = decodeURIComponent(getRouterParam(e, "path") ?? ''); if(!path) { setResponseStatus(e, 404); return; } const db = useDatabase(); const content = db.select({ 'path': explorerContentTable.path, 'owner': explorerContentTable.owner, 'title': explorerContentTable.title, 'type': explorerContentTable.type, 'content': sql`cast(${explorerContentTable.content} as TEXT)`.as('content'), 'navigable': explorerContentTable.navigable, 'private': explorerContentTable.private, 'order': explorerContentTable.order, 'visit': explorerContentTable.visit, }).from(explorerContentTable).where(eq(explorerContentTable.path, sql.placeholder('path'))).prepare().get({ path }); if(content !== undefined) { db.update(explorerContentTable).set({ visit: content.visit + 1 }).where(eq(explorerContentTable.path, content.path)).run(); return content; } setResponseStatus(e, 404); return; });