Add PostgreSQL support with SQLite/Postgres database compatibility layer
- Add dbGet/dbAll helper functions for database-agnostic queries - Add toDbBool/convertBooleansForDb for boolean type conversion - Add toDbDate/getNow for timestamp type handling - Add generateId that returns UUID for Postgres, nanoid for SQLite - Update all routes to use compatibility helpers - Add normalizeEvent to return clean number types from Postgres decimal - Add formatPrice utility for consistent price display - Add legal pages admin interface with RichTextEditor - Update carousel images - Add drizzle migration files for PostgreSQL
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Hono } from 'hono';
|
||||
import { db, media } from '../db/index.js';
|
||||
import { db, dbGet, dbAll, media } from '../db/index.js';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { requireAuth } from '../lib/auth.js';
|
||||
import { generateId, getNow } from '../lib/utils.js';
|
||||
@@ -85,11 +85,9 @@ mediaRouter.post('/upload', requireAuth(['admin', 'organizer']), async (c) => {
|
||||
mediaRouter.get('/:id', async (c) => {
|
||||
const id = c.req.param('id');
|
||||
|
||||
const mediaRecord = await (db as any)
|
||||
.select()
|
||||
.from(media)
|
||||
.where(eq((media as any).id, id))
|
||||
.get();
|
||||
const mediaRecord = await dbGet<any>(
|
||||
(db as any).select().from(media).where(eq((media as any).id, id))
|
||||
);
|
||||
|
||||
if (!mediaRecord) {
|
||||
return c.json({ error: 'Media not found' }, 404);
|
||||
@@ -102,11 +100,9 @@ mediaRouter.get('/:id', async (c) => {
|
||||
mediaRouter.delete('/:id', requireAuth(['admin', 'organizer']), async (c) => {
|
||||
const id = c.req.param('id');
|
||||
|
||||
const mediaRecord = await (db as any)
|
||||
.select()
|
||||
.from(media)
|
||||
.where(eq((media as any).id, id))
|
||||
.get();
|
||||
const mediaRecord = await dbGet<any>(
|
||||
(db as any).select().from(media).where(eq((media as any).id, id))
|
||||
);
|
||||
|
||||
if (!mediaRecord) {
|
||||
return c.json({ error: 'Media not found' }, 404);
|
||||
@@ -142,7 +138,7 @@ mediaRouter.get('/', requireAuth(['admin', 'organizer']), async (c) => {
|
||||
query = query.where(eq((media as any).relatedId, relatedId));
|
||||
}
|
||||
|
||||
const result = await query.all();
|
||||
const result = await dbAll(query);
|
||||
|
||||
return c.json({ media: result });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user