From e25a0c6b76c7dd2249f0a79e58bbb637503d9609 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Wed, 29 Oct 2025 17:46:36 -0600 Subject: [PATCH] =?UTF-8?q?Fix:=20no=20enviar=20par=C3=A1metros=20opcional?= =?UTF-8?q?es=20vac=C3=ADos=20a=20Metabase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problema: - Al enviar parámetros con valores vacíos (""), Metabase los expandía - Filtros opcionales [[AND ...]] se convertían en filtros obligatorios - Resultado: queries retornaban 0 registros en lugar de aplicar filtros opcionales Solución: - Solo enviar parámetros si son requeridos O tienen valor no vacío - Verificar que el valor no sea null, "", undefined o array vacío - Los parámetros opcionales sin valor no se incluyen en el request Afecta: MetabaseCardDisplay.vue executeQuery() líneas 345-360 --- .../metabase/MetabaseCardDisplay.vue | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/nuxt4-app/app/components/metabase/MetabaseCardDisplay.vue b/nuxt4-app/app/components/metabase/MetabaseCardDisplay.vue index ca0e54d..6400172 100644 --- a/nuxt4-app/app/components/metabase/MetabaseCardDisplay.vue +++ b/nuxt4-app/app/components/metabase/MetabaseCardDisplay.vue @@ -342,11 +342,22 @@ async function executeQuery() { paramValue = parameterValues.value[tagName] || '' } - parameters.push({ - type: paramType, - target: ['variable', ['template-tag', tagName]], - value: paramValue - }) + // Only add parameter if: + // 1. It's required, OR + // 2. It has a non-empty value (not null, not empty string, not empty array) + const isRequired = config.required === true + const hasValue = paramValue !== null && + paramValue !== '' && + paramValue !== undefined && + (!Array.isArray(paramValue) || paramValue.length > 0) + + if (isRequired || hasValue) { + parameters.push({ + type: paramType, + target: ['variable', ['template-tag', tagName]], + value: paramValue + }) + } } const result = await $fetch(`/api/metabase/cards/${props.card.id}/query`, {