import { NextRequest, NextResponse } from 'next/server'; import Settings from 'settings'; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const barcode = searchParams.get('search_text'); if (!barcode) { return NextResponse.json( { error: 'Missing search_text parameter (barcode)' }, { status: 400 } ); } if (Settings.commerceUrl === 'default') { return NextResponse.json( { error: 'Commerce URL is not configured' }, { status: 500 } ); } const queryParams = new URLSearchParams(); queryParams.append('search_text', barcode); searchParams.forEach((value, key) => { if (key !== 'search_text') { queryParams.append(key, value); } }); const apiUrl = `${Settings.commerceUrl}/list/?${queryParams.toString()}`; const headers: Record = { Accept: 'application/json', 'Content-Type': 'application/json' }; const response = await fetch(apiUrl, { method: 'GET', headers }); if (!response.ok) { return NextResponse.json( { error: `API request failed with status: ${response.status}` }, { status: response.status } ); } const data = await response.json(); return NextResponse.json(data); } catch (error) { return NextResponse.json( { error: (error as Error).message }, { status: 500 } ); } }