This repository has been archived on 2026-02-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Memento-old/src/pages/api/entry/[id].ts
2026-01-15 16:38:25 +13:00

30 lines
951 B
TypeScript

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)
}
}