import { NextResponse } from "next/server"; import { corsHeaders, forbidden, isAllowedOrigin } from "@/lib/api-cors"; import { getDiscordAppInfo } from "@/lib/lanyard"; export async function OPTIONS(request: Request) { if (!isAllowedOrigin(request)) { return forbidden(); } return new NextResponse(null, { status: 204, headers: { ...corsHeaders(), "Access-Control-Allow-Methods": "GET, OPTIONS", "Access-Control-Max-Age": "86400", }, }); } export async function GET(request: Request, context: { params: Promise<{ id: string }> }) { if (!isAllowedOrigin(request)) { return forbidden(); } const { id } = await context.params; if (!/^\d+$/.test(id)) { return NextResponse.json({ error: "Invalid application id" }, { status: 400 }); } const info = await getDiscordAppInfo(id); if (!info) { return NextResponse.json({ error: "Application not found" }, { status: 404 }); } return NextResponse.json(info, { headers: { "Cache-Control": "public, s-maxage=86400, stale-while-revalidate=86400", ...corsHeaders(), }, }); }