import { invalidIdResponse, jsonErrorWithCors, jsonWithCors, parseAppId, requestOrigin, } from "@/lib/api-route"; import { resolveGameLocale } from "@/lib/game/game-format"; import { getGameProfile } from "@/lib/game/game-profile"; import { warnDev } from "@/lib/log"; import type { NextResponse } from "next/server"; export async function GET( request: Request, context: { params: Promise<{ id: string }> }, ): Promise { const origin = requestOrigin(request); const id = await parseAppId(context); if (!id) { return invalidIdResponse(origin); } const { searchParams } = new URL(request.url); const countryRaw = searchParams.get("country") ?? ""; const country = /^[A-Z]{2}$/.test(countryRaw) ? countryRaw : "TR"; const { lang } = resolveGameLocale(searchParams.get("lang") ?? ""); let profile; try { profile = await getGameProfile(id, lang, country); } catch (error) { warnDev(`game upstream failed: ${id} -> ${error instanceof Error ? error.message : error}`); return jsonErrorWithCors({ error: "Upstream unavailable" }, 502, 60, origin); } if (!profile) { return jsonErrorWithCors({ error: "Game not found" }, 404, 60, origin); } return jsonWithCors(profile, 3600, origin); }