import { NextResponse } from 'next/server'; // Proxy for Lorcana APIs to handle CORS export async function GET(request) { try { const { searchParams } = new URL(request.url); const query = searchParams.get('q'); const search = searchParams.get('search'); const limit = searchParams.get('limit') || '20'; const api = searchParams.get('api') || 'lorcana'; // 'lorcana' or 'lorcast' let url; let headers = {}; if (api === 'lorcana') { // Lorcana API if (search) { url = `https://lorcana-api.com/api/v1/cards?search=${encodeURIComponent(search)}`; } else { url = `https://lorcana-api.com/api/v1/cards?limit=${limit}`; } headers = { 'Accept': 'application/json', 'User-Agent': 'TCG-Vault/1.0' }; } else { // Lorcast API if (query) { url = `https://api.lorcast.com/v0/cards?q=${encodeURIComponent(query)}`; } else { url = `https://api.lorcast.com/v0/cards`; } headers = { 'Accept': 'application/json', 'User-Agent': 'TCG-Vault/1.0' }; } console.log(`🔗 Proxying request to: ${url}`); const response = await fetch(url, { headers }); if (!response.ok) { console.error(`❌ Proxy error: ${response.status} ${response.statusText}`); return NextResponse.json( { error: `External API error: ${response.status}` }, { status: response.status } ); } const data = await response.json(); console.log(`✅ Proxy success: ${url}`); return NextResponse.json({ success: true, data: data, source: api }); } catch (error) { console.error('Proxy error:', error); return NextResponse.json( { error: 'Failed to fetch from external API' }, { status: 500 } ); } }