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 )