Files
lexmind/scripts/testar-datajud.ts

103 lines
3.0 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env npx ts-node
/**
* Script de Teste da API DataJud
* Testa a conexão e busca um processo de exemplo
*/
// API Key pública do DataJud (CNJ)
const DATAJUD_API_KEY = 'cDZHYzlZa0JadVREZDJCendQbXY6SkJlTzNjLV9TRENyQk1RdnFKZGRQdw=='
const DATAJUD_BASE_URL = 'https://api-publica.datajud.cnj.jus.br'
async function testarDataJud() {
console.log('='.repeat(60))
console.log('🧪 Testando conexão com API DataJud (CNJ)')
console.log('='.repeat(60))
// Teste 1: Buscar um processo aleatório
console.log('\n1. Buscando processo de exemplo no TJSP...')
const url = `${DATAJUD_BASE_URL}/api_publica_tjsp/_search`
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `APIKey ${DATAJUD_API_KEY}`,
},
body: JSON.stringify({
size: 1,
query: {
bool: {
must: [
{ exists: { field: 'movimentos' } }
],
filter: [
{ range: { '@timestamp': { gte: 'now-7d' } } }
]
}
}
}),
})
if (!response.ok) {
console.log(`❌ Erro HTTP: ${response.status}`)
const text = await response.text()
console.log(text.substring(0, 500))
return
}
const data = await response.json()
console.log(`✅ Resposta OK - ${data.hits?.total?.value || 0} processos no índice`)
if (data.hits?.hits?.length > 0) {
const processo = data.hits.hits[0]._source
console.log(`\n📄 Processo encontrado:`)
console.log(` Número: ${processo.numeroProcesso}`)
console.log(` Classe: ${processo.classe?.nome || 'N/A'}`)
console.log(` Tribunal: ${processo.tribunal}`)
console.log(` Movimentos: ${processo.movimentos?.length || 0}`)
// Mostrar últimos movimentos
const ultimos = (processo.movimentos || []).slice(-5)
console.log('\n Últimos movimentos:')
ultimos.forEach((m: any) => {
console.log(` - ${m.dataHora?.substring(0, 10)} | ${m.nome} (código: ${m.codigo})`)
})
}
// Teste 2: Buscar processo específico (se existir)
console.log('\n\n2. Testando busca por número específico...')
const response2 = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `APIKey ${DATAJUD_API_KEY}`,
},
body: JSON.stringify({
size: 1,
query: {
match: {
numeroProcesso: '10000000020248260100' // Exemplo fictício
}
}
}),
})
const data2 = await response2.json()
const found = data2.hits?.hits?.length > 0
console.log(` Processo de teste: ${found ? '✅ Encontrado' : ' Não encontrado (esperado)'}`)
console.log('\n' + '='.repeat(60))
console.log('✅ API DataJud funcionando corretamente!')
console.log('='.repeat(60))
} catch (error) {
console.error('❌ Erro ao conectar:', error)
}
}
testarDataJud()