Spaces:
Runtime error
Runtime error
| /** | |
| * GET /api/gamification/badges/earned — badges earned by a key, or the operator-wide | |
| * earned set (distinct across all keys) when no `apiKeyId` is supplied. (#3484) | |
| * | |
| * LOCAL_ONLY: not process-spawning; management-scoped via requireManagementAuth. | |
| */ | |
| import { NextRequest, NextResponse } from "next/server"; | |
| import { CORS_HEADERS, handleCorsOptions } from "@/shared/utils/cors"; | |
| import { getBadges, getAllEarnedBadges } from "@/lib/db/gamification"; | |
| import { requireManagementAuth } from "@/lib/api/requireManagementAuth"; | |
| export async function OPTIONS() { | |
| return handleCorsOptions(); | |
| } | |
| export async function GET(request: NextRequest) { | |
| const authError = await requireManagementAuth(request); | |
| if (authError) return authError; | |
| const apiKeyId = new URL(request.url).searchParams.get("apiKeyId"); | |
| const badges = apiKeyId ? getBadges(apiKeyId) : getAllEarnedBadges(); | |
| return NextResponse.json({ badges }, { headers: CORS_HEADERS }); | |
| } | |