From 9fde9251f41f6cc6d1d2849a984fb197eb80c3b9 Mon Sep 17 00:00:00 2001 From: admtracksteel Date: Thu, 28 May 2026 14:48:24 +0000 Subject: [PATCH] =?UTF-8?q?Corrige=20erro=20de=20extra=C3=A7=C3=A3o=20de?= =?UTF-8?q?=20scalar=20em=20jsonb=5Farray=5Felements=5Ftext=20adicionando?= =?UTF-8?q?=20verifica=C3=A7=C3=B5es=20de=20tipo=20jsonb=5Ftypeof=20em=20t?= =?UTF-8?q?odas=20as=20queries=20SQL=20relevantes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server.js b/server.js index 8d9b55a..f9064a9 100644 --- a/server.js +++ b/server.js @@ -820,7 +820,7 @@ app.get('/api/observacoes/contar', requireAuth, async (req, res) => { let pCount = 1; if (crianca) { - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(criancas) AS c WHERE LOWER(c) LIKE $${pCount} )`; @@ -854,7 +854,7 @@ app.get('/api/observacoes/contar', requireAuth, async (req, res) => { if (tags) { const tagList = tags.split(',').map(t => t.trim().toLowerCase()); - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(tags) AS t WHERE LOWER(t) = ANY($${pCount}) )`; @@ -891,7 +891,7 @@ app.post('/api/modelos/gerar-relatorio', requireAuth, async (req, res) => { let pCount = 1; if (crianca) { - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(criancas) AS c WHERE LOWER(c) LIKE $${pCount} )`; @@ -925,7 +925,7 @@ app.post('/api/modelos/gerar-relatorio', requireAuth, async (req, res) => { if (tags) { const tagList = Array.isArray(tags) ? tags : [tags]; - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(tags) AS t WHERE LOWER(t) = ANY($${pCount}) )`; @@ -1106,7 +1106,7 @@ app.get('/api/observacoes/buscar', requireAuth, async (req, res) => { let pCount = 1; if (crianca) { - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(criancas) AS c WHERE LOWER(c) LIKE $${pCount} )`; @@ -1122,7 +1122,7 @@ app.get('/api/observacoes/buscar', requireAuth, async (req, res) => { if (tags) { const tagList = tags.split(',').map(t => t.trim().toLowerCase()); - sql += ` AND EXISTS ( + sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(tags) AS t WHERE LOWER(t) = ANY($${pCount}) )`; @@ -1154,7 +1154,7 @@ app.get('/api/observacoes/resumo', requireAuth, async (req, res) => { let sql = ` SELECT date, time, report, tags, turma, SUBSTRING(report FROM 1 FOR 120) || '...' as preview FROM escola.observacoes - WHERE EXISTS ( + WHERE jsonb_typeof(criancas) = 'array' AND EXISTS ( SELECT 1 FROM jsonb_array_elements_text(criancas) AS c WHERE LOWER(c) LIKE $1 )