Files
lexmind/scripts/teste-standalone.ts

85 lines
2.4 KiB
TypeScript

#!/usr/bin/env npx ts-node
/**
* Teste Standalone da API DataJud
* Não depende de imports externos
*/
const DATAJUD_API_KEY = 'cDZHYzlZa0JadVREZDJCendQbXY6SkJlTzNjLV9TRENyQk1RdnFKZGRQdw=='
interface Movimento {
codigo: number
nome: string
dataHora: string
orgaoJulgador?: { nome: string }
complementosTabelados?: Array<{ nome: string }>
}
async function buscarDataJud(numeroProcesso: string, tribunal: string) {
const endpoint = `api_publica_${tribunal.toLowerCase()}`
const url = `https://api-publica.datajud.cnj.jus.br/${endpoint}/_search`
const numeroLimpo = numeroProcesso.replace(/\D/g, '')
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `APIKey ${DATAJUD_API_KEY}`,
},
body: JSON.stringify({
size: 1,
query: { match: { numeroProcesso: numeroLimpo } },
}),
})
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${await response.text()}`)
}
return await response.json()
}
async function main() {
console.log('='.repeat(60))
console.log('🧪 Teste Standalone - API DataJud')
console.log('='.repeat(60))
// Teste com processo que encontramos antes
const processoNumero = '1000044-50.2025.8.26.0220'
console.log(`\n📋 Buscando: ${processoNumero}`)
try {
const data = await buscarDataJud(processoNumero, 'TJSP')
const hits = data.hits?.hits || []
if (hits.length === 0) {
console.log('❌ Processo não encontrado')
return
}
const processo = hits[0]._source
console.log(`\n✅ Processo encontrado!`)
console.log(` Classe: ${processo.classe?.nome}`)
console.log(` Órgão: ${processo.orgaoJulgador?.nome}`)
console.log(` Total movimentos: ${processo.movimentos?.length || 0}`)
// Filtrar publicações
const publicacoes = (processo.movimentos || []).filter((m: Movimento) =>
m.codigo === 92 || // Publicação
m.nome?.toLowerCase().includes('publicação') ||
m.nome?.toLowerCase().includes('intimação') ||
m.nome?.toLowerCase().includes('citação')
)
console.log(`\n📰 Publicações/Intimações (${publicacoes.length}):`)
publicacoes.slice(0, 10).forEach((m: Movimento, i: number) => {
console.log(` ${i + 1}. ${m.dataHora?.substring(0, 10)} | ${m.nome}`)
})
} catch (error) {
console.error('❌ Erro:', error)
}
}
main()