datajud 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10c59cd9f52f93532e97686b95b2ce3a5f482c6cd42c7b110a860c21e60c268b
4
- data.tar.gz: 7886282868f709f225b981e62932985630387d120020d0b0ebe962c6251fc695
3
+ metadata.gz: 5f39081aadf1eae3fd48ec2b4c41290747c9c1d7af57e1c2277a030633ed9e64
4
+ data.tar.gz: aab5ae80ec67d1465641b0af7b4674b1ee2dceddcc20c5ef36fbf9263dd2a23a
5
5
  SHA512:
6
- metadata.gz: 80e24e11e26c39faff385fa928f7f8b6125ed307bd40b5826527c75a09e30f51e7265213bcbe7c1ef30c2c15e86a2d0367f580d132f7e4587bd703ef1f4fc0fa
7
- data.tar.gz: 29fb5433cf555e0df1df5f1a3f79f52a50c53a946ea5de7ce2c0a36107c99613fb304d0a0bf99a665bc587857d4cc4e7dc1c5c03389e39d59c6f551a08b181e6
6
+ metadata.gz: 8c0c96e126baf36e5a1e9fe6960a60f6bf332290931515f8386245c4e808905a89c2bae3a89dd38fb900a6de953739e9175edc2880047520d62ae054bab7c674
7
+ data.tar.gz: f518b69601b88db2d9a7eb452673019449504772ce4d818e2c64d65e663b8b72a1f8ec1910ce37a5839cd135b1d65386f43ba9fe67dd72b731484212cf267d53
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.2] - 2026-03-12
4
+
5
+ - Added `Datajud.find` to return process data via an object-oriented API.
6
+
3
7
  ## [0.1.0] - 2025-11-25
4
8
 
5
9
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- datajud (0.1.2)
4
+ datajud (0.1.3)
5
5
  json (~> 2.0)
6
6
  net-http (~> 0.3)
7
7
  nokogiri (~> 1.14)
@@ -10,20 +10,19 @@ module Datajud
10
10
  # Consulta genérica: tribunal e filtros customizados
11
11
  def self.buscar(tribunal, filtros = {})
12
12
  endpoint = "/api_publica_#{tribunal.downcase}/_search"
13
- url = URI("#{Datajud.configuration.base_endpoint}#{endpoint}")
14
-
13
+ url = URI("#{Datajud.configuration.base_endpoint}#{endpoint}")
15
14
  http = Net::HTTP.new(url.host, url.port)
16
15
  http.use_ssl = (url.scheme == "https")
17
- http.open_timeout = Datajud.configuration.open_timeout
18
- http.read_timeout = Datajud.configuration.read_timeout
16
+ http.open_timeout = Datajud.configuration.open_timeout
17
+ http.read_timeout = Datajud.configuration.read_timeout
19
18
 
20
19
  request = Net::HTTP::Post.new(url)
21
- request['Authorization'] = "APIKey #{Datajud.api_key}"
20
+ request['Authorization'] = "APIKey #{Datajud.api_key}"
22
21
  request['Content-Type'] = 'application/json'
23
22
  request.body = { query: filtros }.to_json
24
23
 
25
24
  begin
26
- response = Datajud.request_with_retry(http, request)
25
+ response = Datajud.request_with_retry(http, request)
27
26
  if response.is_a?(Net::HTTPSuccess)
28
27
  JSON.parse(response.body)
29
28
  else
@@ -3,7 +3,8 @@
3
3
  module Datajud
4
4
  class Client
5
5
  # Retorna uma instância de Datajud::Processo ou nil
6
- def self.find(numero, tribunal: nil)
6
+ def self.find(numero, tribunal = nil, **kwargs)
7
+ tribunal = kwargs[:tribunal] if tribunal.nil? && kwargs.key?(:tribunal)
7
8
  raw = Datajud.processo(numero, tribunal: tribunal)
8
9
  return nil unless raw && raw[:processo] || raw && raw['processo']
9
10
 
@@ -22,6 +22,33 @@ module Datajud
22
22
  @data['classe'] || @data[:classe]
23
23
  end
24
24
 
25
+ def vara
26
+ v = @data['vara'] || @data[:vara]
27
+ return nil unless v
28
+
29
+ OpenStruct.new(
30
+ nome: v['nome'] || v[:nome],
31
+ codigo: v['codigo'] || v[:codigo],
32
+ comarca: v['comarca'] || v[:comarca]
33
+ )
34
+ end
35
+
36
+ def situacao
37
+ @data['situacao'] || @data[:situacao]
38
+ end
39
+
40
+ def origem
41
+ @data['origem'] || @data[:origem]
42
+ end
43
+
44
+ def instancia
45
+ @data['instancia'] || @data[:instancia]
46
+ end
47
+
48
+ def assunto
49
+ @data['assunto'] || @data[:assunto]
50
+ end
51
+
25
52
  def partes
26
53
  partes = @data['partes'] || @data[:partes] || []
27
54
  partes.map do |p|
@@ -33,7 +60,7 @@ module Datajud
33
60
  end
34
61
  end
35
62
 
36
- def movimentacoes
63
+ def andamentos
37
64
  mov = @data['andamentos'] || @data[:andamentos] || @data['movimentacoes'] || @data[:movimentacoes]
38
65
  (mov || []).map do |m|
39
66
  OpenStruct.new(
@@ -44,6 +71,32 @@ module Datajud
44
71
  end
45
72
  end
46
73
 
74
+ def documentos
75
+ docs = @data['documentos'] || @data[:documentos] || []
76
+ docs.map do |d|
77
+ OpenStruct.new(
78
+ titulo: d['titulo'] || d['nomeDocumento'] || d[:titulo],
79
+ tipo: d['tipo'] || d['tipoDocumento'] || d[:tipo],
80
+ data: d['data'] || d['dataJuntada'] || d[:data],
81
+ assinatura_digital: d['assinatura_digital'] || d['assinaturaDigital'] || d[:assinatura_digital]
82
+ )
83
+ end
84
+ end
85
+
86
+ def audiencias
87
+ auds = @data['audiencias'] || @data[:audiencias] || []
88
+ auds.map do |a|
89
+ OpenStruct.new(
90
+ data_hora: a['data_hora'] || a['dataHora'] || a[:data_hora],
91
+ tipo: a['tipo'] || a[:tipo],
92
+ status: a['status'] || a['statusAudiencia'] || a[:status],
93
+ observacao: a['observacao'] || a[:observacao]
94
+ )
95
+ end
96
+ end
97
+
98
+ alias movimentacoes andamentos
99
+
47
100
  def to_h
48
101
  { tribunal: tribunal, processo: data }
49
102
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Datajud
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/datajud.rb CHANGED
@@ -320,12 +320,14 @@ module Datajud
320
320
  # A implementação mais rica (retornando objetos) está em Datajud::Client
321
321
 
322
322
  # Retorna um objeto Datajud::Processo ou nil
323
- def self.find(numero, tribunal: nil)
323
+ def self.find(numero, tribunal = nil, **kwargs)
324
+ tribunal = kwargs[:tribunal] if tribunal.nil? && kwargs.key?(:tribunal)
324
325
  Datajud::Client.find(numero, tribunal: tribunal)
325
326
  end
326
327
 
327
328
  # Mantém método antigo para compatibilidade (retorna hash com dados brutos)
328
- def self.processo(numero, tribunal: nil)
329
+ def self.processo(numero, tribunal = nil, **kwargs)
330
+ tribunal = kwargs[:tribunal] if tribunal.nil? && kwargs.key?(:tribunal)
329
331
  # A lógica original permanecida aqui para backward-compat
330
332
  siglas_consulta = if tribunal
331
333
  Array(tribunal).flatten.map { |t| t.to_s.downcase }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datajud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - PablUoo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri