Files
vula-dfe99a27/src/app/api/products/route.ts
T
Vula Builder 662e5d761b Deploy
2026-08-05 18:14:40 +00:00

24 lines
1.0 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
export async function GET(request: NextRequest) {
const { searchParams } = new URL(request.url)
const rawLimit = searchParams.get('limit') || '12'
const parsedLimit = parseInt(rawLimit, 10)
const limit = isNaN(parsedLimit) ? 12 : Math.min(Math.max(parsedLimit, 1), 100)
const categoryId = searchParams.get('categoryId') || undefined
const ids = searchParams.getAll('id[]')
const vulaUrl = process.env.VULA_CMS_URL || 'https://ide.vulai.co.za'
const projectId = process.env.VULA_CMS_PROJECT_ID || ''
const params = new URLSearchParams({ limit: String(limit) })
if (categoryId) params.set('category_id', categoryId)
ids.forEach(id => params.append('id[]', id))
try {
const r = await fetch(`${vulaUrl}/api/store/${projectId}/products?${params}`, { cache: 'no-store' })
const data = await r.json()
return NextResponse.json(data)
} catch {
return NextResponse.json({ success: false, products: [], count: 0 }, { status: 502 })
}
}