Files
buzz-sheet/app/api/events/page/[id]/route.ts
T

26 lines
652 B
TypeScript

import { connection } from "next/server";
import {
createRedisEventResponse,
eventsUnavailableResponse,
} from "@/lib/events/redis-stream";
const UUID_PATTERN =
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;
export async function GET(
request: Request,
{ params }: { params: Promise<{ id: string }> },
) {
await connection();
const { id } = await params;
if (!UUID_PATTERN.test(id)) {
return Response.json({ error: "invalid-page-id" }, { status: 400 });
}
try {
return await createRedisEventResponse(`page:${id}`, request.signal);
} catch {
return eventsUnavailableResponse();
}
}