85 lines
2.4 KiB
TypeScript
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()
|