# F-131 — Reenviar query string en proxy catch-all del admin ## Cambios ### `apps/admin/src/app/api/[...path]/route.ts` - 5 handlers (GET, POST, PATCH, PUT, DELETE) actualizados para incluir `req.nextUrl.search` al construir la URL hacia el backend. - Antes: `fetch(`${API}/${path}`, …)` — descartaba cualquier query string. - Después: `fetch(`${API}/${path}${search}`, …)` — reenvía `?q=…&limit=…&offset=…` al backend. ```diff export async function GET(req: NextRequest) { const path = req.nextUrl.pathname.replace('/api/', ''); + const search = req.nextUrl.search; … - const backendRes = await fetch(`${API}/${path}`, { … }); + const backendRes = await fetch(`${API}/${path}${search}`, { … }); ``` (Mismo patrón aplicado a POST, PATCH, PUT, DELETE.) ## Verificación ### Antes del fix ``` GET /catalog/products?q=almendra&limit=5 (directo al backend) → 200 { total: 1, items: ['Almendras Crudas Ecologicas'] } ✅ GET /api/catalog/products?q=almendra&limit=5 (vía proxy del admin) → 200 { total: 13, items: [los 13 productos] } ❌ (q se pierde) ``` ### Después del fix - `apps/admin/.next/server/chunks/[root-of-the-server]__0tr-qzw._.js.map` contiene: ``` fetch(`${API}/${path}${search}`, { headers: { Cookie: cookies } }) fetch(`${API}/${path}${search}`, { method: 'POST', … }) fetch(`${API}/${path}${search}`, { method: 'PATCH', … }) fetch(`${API}/${path}${search}`, { method: 'PUT', … }) fetch(`${API}/${path}${search}`, { method: 'DELETE', … }) ``` - Los 5 handlers ahora reenvían `search`. ### Tests - `cd apps/admin && npx tsc --noEmit` → exit 0. - `cd apps/admin && NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 npm run build` → exit 0. ## Impacto colateral Este fix también repara: - **F-126** (buscador /inventory): mismo síntoma, misma causa. Ahora `?q=…` llega al backend. - Cualquier otro endpoint del admin que reciba query params (paginación `?limit=&offset=`, filtros de fecha, etc.). - El frontend ya construye correctamente las URLs; el proxy era el cuello de botella. ## Notas - El operador debe reiniciar el admin (`./scripts/monolith.sh prod restart`) para desplegar el bundle compilado. - Antes del restart, el bundle live en `:3004` sigue con el bug (verificado: `?q=almendra` aún devuelve 13 productos a través del proxy).