| import { Hono } from 'hono'; |
| import { desc, eq } from 'drizzle-orm'; |
| import { images, prompts } from '../db/schema'; |
| import type { Env, Variables } from '../index'; |
|
|
| export const imagesApi = new Hono<{ Bindings: Env; Variables: Variables }>(); |
|
|
| |
| imagesApi.get('/', async (c) => { |
| const db = c.var.db; |
| const rows = await db |
| .select({ |
| id: images.id, |
| promptId: images.promptId, |
| b64: images.b64, |
| model: images.model, |
| size: images.size, |
| quality: images.quality, |
| generationDuration: images.generationDuration, |
| promptUsed: images.promptUsed, |
| createdAt: images.createdAt, |
| promptTitle: prompts.title, |
| }) |
| .from(images) |
| .leftJoin(prompts, eq(images.promptId, prompts.id)) |
| .orderBy(desc(images.createdAt)); |
| return c.json(rows); |
| }); |
|
|
| |
| imagesApi.delete('/:id', async (c) => { |
| const db = c.var.db; |
| await db.delete(images).where(eq(images.id, c.req.param('id'))); |
| return c.json({ ok: true }); |
| }); |
|
|