Files
buzz-sheet/app/api/events/admin/route.ts
T

28 lines
633 B
TypeScript

import { connection } from "next/server";
import {
AdminAuthorizationError,
requireAdmin,
} from "@/lib/auth/server";
import {
createRedisEventResponse,
eventsUnavailableResponse,
} from "@/lib/events/redis-stream";
export async function GET(request: Request) {
await connection();
try {
await requireAdmin();
} catch (cause) {
if (cause instanceof AdminAuthorizationError) {
return Response.json({ error: "unauthorized" }, { status: 401 });
}
throw cause;
}
try {
return await createRedisEventResponse("admin", request.signal);
} catch {
return eventsUnavailableResponse();
}
}