← back to Wine Finder Next
app/api/winecom/search/route.ts
38 lines
import { NextRequest, NextResponse } from 'next/server';
import { generateMockWineData } from '@/lib/services/mockWineData';
/**
* Wine.com Retail Search API Route
* DEMO MODE: Using mock data until Wine.com Developer API is configured
* TODO: Sign up for Wine.com Developer API at https://www.wine.com/content/affiliate-program
*/
export async function GET(request: NextRequest) {
const searchParams = request.nextUrl.searchParams;
const query = searchParams.get('q');
if (!query) {
return NextResponse.json({ error: 'Query parameter "q" is required' }, { status: 400 });
}
try {
// DEMO: Generate mock data for testing the UI
const mockWines = generateMockWineData(query);
const wineComWines = mockWines.filter(w => w.providerName === 'Wine.com');
console.log(`[Wine.com DEMO] Returning ${wineComWines.length} mock wines for query: ${query}`);
return NextResponse.json({ wines: wineComWines });
// TODO: Uncomment when Wine.com API key is available
// const wineComApiKey = process.env.WINECOM_API_KEY;
// const response = await fetch(`https://api.wine.com/v2/search?q=${encodeURIComponent(query)}`, {
// headers: { 'Authorization': `Bearer ${wineComApiKey}` }
// });
} catch (error) {
console.error('Wine.com search error:', error);
return NextResponse.json({ wines: [] });
}
}