Spaces:
Sleeping
Sleeping
yassinekolsi
Fix Next.js 16 build: disable cacheComponents, add force-dynamic to all API routes and pages with server fetches
a3ea1a9 | import { NextResponse } from 'next/server'; | |
| import { API_CONFIG } from '@/config/api.config'; | |
| export const dynamic = 'force-dynamic'; | |
| export async function POST(request: Request) { | |
| const body = await request.json(); | |
| const { | |
| query, | |
| searchType = 'similarity', | |
| database = 'all', | |
| limit = 10, | |
| } = body; | |
| console.info('Starting discovery for:', query); | |
| try { | |
| const response = await fetch(`${API_CONFIG.baseUrl}/api/discovery`, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| }, | |
| body: JSON.stringify({ | |
| query, | |
| search_type: searchType, | |
| database, | |
| limit, | |
| }), | |
| }); | |
| if (!response.ok) { | |
| throw new Error(`Backend returned ${response.status}`); | |
| } | |
| const data = await response.json(); | |
| return NextResponse.json(data); | |
| } catch (error) { | |
| console.error('Discovery API error:', error); | |
| return NextResponse.json({ | |
| success: true, | |
| job_id: 'job_' + Date.now(), | |
| status: 'pending', | |
| message: 'Pipeline started (mock mode - backend unavailable)', | |
| }); | |
| } | |
| } | |
| export async function GET(request: Request) { | |
| const { searchParams } = new URL(request.url); | |
| const jobId = searchParams.get('jobId'); | |
| if (!jobId) { | |
| return NextResponse.json({ error: 'jobId required' }, { status: 400 }); | |
| } | |
| try { | |
| const response = await fetch( | |
| `${API_CONFIG.baseUrl}/api/discovery/${jobId}`, | |
| ); | |
| const data = await response.json(); | |
| return NextResponse.json(data); | |
| } catch (err) { | |
| return NextResponse.json({ | |
| job_id: jobId, | |
| status: 'unknown', | |
| error: `Backend unavailable: ${err}`, | |
| }); | |
| } | |
| } | |