// Resuelve nombre, calidad e icono de una entidad de wowhead (rama WotLK) para que // el editor del foro pueda insertar el enlace ya con su nombre real y su color de // calidad, sin el parpadeo de «item=xxx». Usa el endpoint de tooltip de wowhead // (el mismo que consume tooltips.js) con dataEnv=8 = WotLK Classic. const TYPES = new Set(['item', 'spell', 'quest', 'npc', 'achievement', 'object']) // Código de locale de wowhead: 0 = inglés, 6 = español. const WH_LOCALE: Record = { es: 6, en: 0 } export async function GET(request: Request) { const url = new URL(request.url) const type = String(url.searchParams.get('type') || 'item') const id = String(url.searchParams.get('id') || '').replace(/\D/g, '') const locale = String(url.searchParams.get('locale') || 'es') if (!TYPES.has(type) || !id) return Response.json({ name: null }, { status: 400 }) const wl = WH_LOCALE[locale] ?? 0 try { const r = await fetch(`https://nether.wowhead.com/tooltip/${type}/${id}?dataEnv=8&locale=${wl}`, { // cache un día: los nombres/calidades no cambian next: { revalidate: 86400 }, }) if (!r.ok) return Response.json({ name: null }) const d = (await r.json()) as { name?: string; quality?: number; icon?: string } return Response.json({ name: d.name ?? null, quality: typeof d.quality === 'number' ? d.quality : null, icon: d.icon ?? null, }) } catch { return Response.json({ name: null }) } }