import type { APIContext } from 'astro'; import { eq } from 'drizzle-orm'; import { db } from '../../../utils/db'; import { entryTable } from '../../../db/schema'; import { httpResponse } from '../../../utils/response'; export async function GET({ params }: APIContext) { try { const { id } = params if (!id || isNaN(Number(id))) { return httpResponse({'error': 'no id provided'}, 400) } return getEntry(Number(id)) } catch (error) { return httpResponse({ error: `Failed to retrieve entry: ${error}` }, 500); } } async function getEntry(id: number) { try { const entry = await db.select().from(entryTable).where(eq(entryTable.id, id)) if (entry.length == 0) { return httpResponse({'error': 'entry not found'}, 404) } return httpResponse(entry[0], 200) } catch { return httpResponse({'error': 'bad request'}, 400) } }