brasilapi 0.7.0 → 0.9.0
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 +4 -4
- data/.rubocop.yml +4 -5
- data/.yardopts +5 -0
- data/CHANGELOG.md +97 -0
- data/Gemfile +5 -2
- data/Gemfile.lock +67 -56
- data/README.md +357 -121
- data/Rakefile +18 -1
- data/lib/brasil_api/address.rb +38 -0
- data/lib/brasil_api/b3.rb +49 -0
- data/lib/brasil_api/bank.rb +31 -0
- data/lib/brasil_api/base.rb +214 -20
- data/lib/brasil_api/business_days.rb +44 -0
- data/lib/brasil_api/cambio.rb +47 -0
- data/lib/brasil_api/cid10.rb +46 -0
- data/lib/brasil_api/company.rb +20 -0
- data/lib/brasil_api/configuration.rb +52 -0
- data/lib/brasil_api/cpf.rb +36 -0
- data/lib/brasil_api/cptec.rb +84 -0
- data/lib/brasil_api/cvm.rb +76 -2
- data/lib/brasil_api/ddd.rb +67 -0
- data/lib/brasil_api/error.rb +51 -0
- data/lib/brasil_api/fipe.rb +111 -6
- data/lib/brasil_api/geolocation.rb +35 -0
- data/lib/brasil_api/holiday.rb +25 -2
- data/lib/brasil_api/hospital.rb +157 -0
- data/lib/brasil_api/ibge.rb +164 -0
- data/lib/brasil_api/ibpt.rb +106 -0
- data/lib/brasil_api/igpm.rb +66 -0
- data/lib/brasil_api/isbn.rb +25 -0
- data/lib/brasil_api/ncm.rb +43 -0
- data/lib/brasil_api/pix.rb +19 -0
- data/lib/brasil_api/registrobr.rb +20 -0
- data/lib/brasil_api/solar.rb +33 -0
- data/lib/brasil_api/status.rb +30 -0
- data/lib/brasil_api/taxas.rb +31 -0
- data/lib/brasil_api/tuss.rb +121 -0
- data/lib/brasil_api/version.rb +7 -1
- data/lib/brasil_api.rb +25 -5
- metadata +24 -7
- data/brasilapi.gemspec +0 -42
data/lib/brasil_api/ibge.rb
CHANGED
|
@@ -1,21 +1,185 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Estados, municípios, regiões e CNAE do IBGE.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
4
12
|
class IBGE < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Lista as unidades federativas.
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<Hash>] sigla, nome e região de cada UF
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::IBGE.states
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
6
25
|
def states
|
|
7
26
|
get("/ibge/uf/v1")
|
|
8
27
|
end
|
|
9
28
|
|
|
29
|
+
# Busca uma unidade federativa pelo código ou pela sigla.
|
|
30
|
+
#
|
|
31
|
+
# @param code [String, Integer] código IBGE ou sigla, por exemplo +"PI"+
|
|
32
|
+
# @return [Hash] dados da UF
|
|
33
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
34
|
+
# @raise [BrasilAPI::NotFound] quando a UF não existe
|
|
35
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
36
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
37
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
38
|
+
# @example
|
|
39
|
+
# BrasilAPI::IBGE.find_state_by_code("PI")
|
|
40
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
10
41
|
def find_state_by_code(code)
|
|
11
42
|
get("/ibge/uf/v1/#{code}")
|
|
12
43
|
end
|
|
13
44
|
|
|
45
|
+
# Lista os municípios de uma UF.
|
|
46
|
+
#
|
|
47
|
+
# +providers+ vazio omite a query. Valores aceitos: +"dados-abertos-br"+,
|
|
48
|
+
# +"gov"+ e +"wikipedia"+.
|
|
49
|
+
#
|
|
50
|
+
# @param state_abbr [String] sigla da UF
|
|
51
|
+
# @param providers [Array<String>] fontes consultadas, separadas por vírgula na API
|
|
52
|
+
# @return [Array<Hash>] nome e código de cada município
|
|
53
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
54
|
+
# @raise [BrasilAPI::NotFound] quando a UF não existe
|
|
55
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
56
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
57
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
58
|
+
# @example Municípios do Piauí
|
|
59
|
+
# BrasilAPI::IBGE.cities_by_state("PI", providers: ["gov"])
|
|
60
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
14
61
|
def cities_by_state(state_abbr, providers: [])
|
|
15
62
|
return get("/ibge/municipios/v1/#{state_abbr}") if providers.empty?
|
|
16
63
|
|
|
17
64
|
get("/ibge/municipios/v1/#{state_abbr}", providers: providers.join(","))
|
|
18
65
|
end
|
|
66
|
+
|
|
67
|
+
# Lista as cinco regiões do Brasil.
|
|
68
|
+
#
|
|
69
|
+
# @return [Array<Hash>] código, sigla e nome de cada região
|
|
70
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
71
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
72
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
73
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
74
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
75
|
+
# @example
|
|
76
|
+
# BrasilAPI::IBGE.regions
|
|
77
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
78
|
+
def regions
|
|
79
|
+
get("/ibge/regioes/v1")
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Busca uma região pelo código IBGE.
|
|
83
|
+
#
|
|
84
|
+
# @param code [String, Integer] código da região, de 1 a 5
|
|
85
|
+
# @return [Hash] sigla e nome da região
|
|
86
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
87
|
+
# @raise [BrasilAPI::NotFound] quando a região não existe
|
|
88
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
89
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
90
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
91
|
+
# @example Região Norte
|
|
92
|
+
# BrasilAPI::IBGE.find_region_by_code(1)
|
|
93
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
94
|
+
def find_region_by_code(code)
|
|
95
|
+
get("/ibge/regioes/v1/#{code}")
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Lista as unidades federativas de uma região.
|
|
99
|
+
#
|
|
100
|
+
# @param code [String, Integer] código da região, de 1 a 5
|
|
101
|
+
# @return [Array<Hash>] UFs da região
|
|
102
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
103
|
+
# @raise [BrasilAPI::NotFound] quando a região não existe
|
|
104
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
105
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
106
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
107
|
+
# @example Estados do Norte
|
|
108
|
+
# BrasilAPI::IBGE.states_by_region(1)
|
|
109
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
110
|
+
def states_by_region(code)
|
|
111
|
+
get("/ibge/uf/v1/regiao/#{code}")
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Classificação Nacional de Atividades Econômicas.
|
|
116
|
+
#
|
|
117
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
118
|
+
class CNAE < Base
|
|
119
|
+
class << self
|
|
120
|
+
# Lista as classes CNAE.
|
|
121
|
+
#
|
|
122
|
+
# @return [Array<Hash>] código e descrição de cada classe
|
|
123
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
124
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
125
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
126
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
127
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
128
|
+
# @example
|
|
129
|
+
# BrasilAPI::IBGE::CNAE.classes
|
|
130
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
131
|
+
def classes
|
|
132
|
+
get("/ibge/cnae/v1/classes")
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Busca uma classe CNAE pelo código.
|
|
136
|
+
#
|
|
137
|
+
# @param code [String, Integer] código da classe, por exemplo +"01113"+
|
|
138
|
+
# @return [Hash] descrição da classe e do grupo
|
|
139
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
140
|
+
# @raise [BrasilAPI::NotFound] quando a classe não existe
|
|
141
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
142
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
143
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
144
|
+
# @example Cultivo de cereais
|
|
145
|
+
# BrasilAPI::IBGE::CNAE.find_class("01113")
|
|
146
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
147
|
+
def find_class(code)
|
|
148
|
+
get("/ibge/cnae/v1/classes/#{code}")
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Busca uma divisão CNAE pelo código.
|
|
152
|
+
#
|
|
153
|
+
# @param code [String, Integer] código da divisão, por exemplo +"01"+
|
|
154
|
+
# @return [Hash] descrição da divisão
|
|
155
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
156
|
+
# @raise [BrasilAPI::NotFound] quando a divisão não existe
|
|
157
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
158
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
159
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
160
|
+
# @example Agricultura, pecuária e serviços relacionados
|
|
161
|
+
# BrasilAPI::IBGE::CNAE.find_division("01")
|
|
162
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
163
|
+
def find_division(code)
|
|
164
|
+
get("/ibge/cnae/v1/divisoes/#{code}")
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Busca um grupo CNAE pelo código.
|
|
168
|
+
#
|
|
169
|
+
# @param code [String, Integer] código do grupo, por exemplo +"011"+
|
|
170
|
+
# @return [Hash] descrição do grupo
|
|
171
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
172
|
+
# @raise [BrasilAPI::NotFound] quando o grupo não existe
|
|
173
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
174
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
175
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
176
|
+
# @example Produção de lavouras temporárias
|
|
177
|
+
# BrasilAPI::IBGE::CNAE.find_group("011")
|
|
178
|
+
# @see https://brasilapi.com.br/docs#tag/IBGE
|
|
179
|
+
def find_group(code)
|
|
180
|
+
get("/ibge/cnae/v1/grupos/#{code}")
|
|
181
|
+
end
|
|
182
|
+
end
|
|
19
183
|
end
|
|
20
184
|
end
|
|
21
185
|
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
8
|
+
module BrasilAPI
|
|
9
|
+
# Tabelas do Instituto Brasileiro de Planejamento e Tributação.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/IBPT
|
|
12
|
+
class IBPT < Base
|
|
13
|
+
class << self
|
|
14
|
+
# Informa a versão publicada das tabelas IBPT.
|
|
15
|
+
#
|
|
16
|
+
# @return [Hash] versão vigente
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::IBPT.version
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/IBPT
|
|
25
|
+
def version
|
|
26
|
+
get("/ibpt/versao/v1")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Consulta a tabela NCM do IBPT em uma UF.
|
|
30
|
+
#
|
|
31
|
+
# Sem +code+, devolve a tabela inteira da UF. +exception+ vira o parâmetro +ex+.
|
|
32
|
+
#
|
|
33
|
+
# @param state [String] sigla da UF
|
|
34
|
+
# @param code [String, nil] código NCM de oito dígitos
|
|
35
|
+
# @param exception [String, nil] exceção da TIPI, por exemplo +"01"+
|
|
36
|
+
# @return [Hash, Array<Hash>] alíquotas do item ou a tabela da UF
|
|
37
|
+
# @raise [BrasilAPI::BadRequest] quando a UF ou o código é inválido
|
|
38
|
+
# @raise [BrasilAPI::NotFound] quando o código não existe na UF
|
|
39
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
40
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
41
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
42
|
+
# @example NCM de cavalos em São Paulo
|
|
43
|
+
# BrasilAPI::IBPT.ncm("SP", "01012100")
|
|
44
|
+
# @see https://brasilapi.com.br/docs#tag/IBPT
|
|
45
|
+
def ncm(state, code = nil, exception: nil)
|
|
46
|
+
lookup("ncm", state, code, exception)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Consulta a tabela NBS do IBPT em uma UF.
|
|
50
|
+
#
|
|
51
|
+
# Sem +code+, devolve a tabela inteira da UF. O código NBS tem nove dígitos.
|
|
52
|
+
#
|
|
53
|
+
# @param state [String] sigla da UF
|
|
54
|
+
# @param code [String, nil] código NBS
|
|
55
|
+
# @param exception [String, nil] exceção tributária (+ex+)
|
|
56
|
+
# @return [Hash, Array<Hash>] alíquotas do item ou a tabela da UF
|
|
57
|
+
# @raise [BrasilAPI::BadRequest] quando a UF ou o código é inválido
|
|
58
|
+
# @raise [BrasilAPI::NotFound] quando o código não existe na UF
|
|
59
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
60
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
61
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
62
|
+
# @example
|
|
63
|
+
# BrasilAPI::IBPT.nbs("SP", "101011000")
|
|
64
|
+
# @see https://brasilapi.com.br/docs#tag/IBPT
|
|
65
|
+
def nbs(state, code = nil, exception: nil)
|
|
66
|
+
lookup("nbs", state, code, exception)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Consulta a tabela da LC 116 do IBPT em uma UF.
|
|
70
|
+
#
|
|
71
|
+
# Sem +code+, devolve a tabela inteira da UF. O código tem quatro dígitos, sem ponto.
|
|
72
|
+
#
|
|
73
|
+
# @param state [String] sigla da UF
|
|
74
|
+
# @param code [String, nil] código da LC 116, por exemplo +"0101"+
|
|
75
|
+
# @param exception [String, nil] exceção tributária (+ex+)
|
|
76
|
+
# @return [Hash, Array<Hash>] alíquotas do item ou a tabela da UF
|
|
77
|
+
# @raise [BrasilAPI::BadRequest] quando a UF ou o código é inválido
|
|
78
|
+
# @raise [BrasilAPI::NotFound] quando o código não existe na UF
|
|
79
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
80
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
81
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
82
|
+
# @example
|
|
83
|
+
# BrasilAPI::IBPT.lc116("SP", "0101")
|
|
84
|
+
# @see https://brasilapi.com.br/docs#tag/IBPT
|
|
85
|
+
def lc116(state, code = nil, exception: nil)
|
|
86
|
+
lookup("lc116", state, code, exception)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
private
|
|
90
|
+
|
|
91
|
+
# Monta +/ibpt/{tipo}/v1/{uf}/{codigo}+ e envia a exceção em +ex+.
|
|
92
|
+
#
|
|
93
|
+
# @api private
|
|
94
|
+
# @param kind [String] +"ncm"+, +"nbs"+ ou +"lc116"+
|
|
95
|
+
# @param state [String] sigla da UF
|
|
96
|
+
# @param code [String, nil] código do item
|
|
97
|
+
# @param exception [String, nil] exceção tributária
|
|
98
|
+
# @return [Hash, Array<Hash>]
|
|
99
|
+
# @raise [BrasilAPI::Error]
|
|
100
|
+
def lookup(kind, state, code, exception)
|
|
101
|
+
path = ["/ibpt/#{kind}/v1", state, code].compact.join("/")
|
|
102
|
+
get(path, { ex: exception })
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
8
|
+
module BrasilAPI
|
|
9
|
+
# Índice Geral de Preços do Mercado.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/IGPM
|
|
12
|
+
class IGPM < Base
|
|
13
|
+
class << self
|
|
14
|
+
# Lista a série histórica do IGP-M.
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<Hash>] mês e valor de cada apuração
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::IGPM.all
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/IGPM
|
|
25
|
+
def all
|
|
26
|
+
get("/indices/igpm/v1")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Devolve as apurações mais recentes.
|
|
30
|
+
#
|
|
31
|
+
# @param limit [Integer] quantidade de meses
|
|
32
|
+
# @return [Array<Hash>] últimas apurações, da mais nova para a mais antiga
|
|
33
|
+
# @raise [BrasilAPI::BadRequest] quando o limite é inválido
|
|
34
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
35
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
36
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
37
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
38
|
+
# @example Dois últimos meses
|
|
39
|
+
# BrasilAPI::IGPM.last(2)
|
|
40
|
+
# @see https://brasilapi.com.br/docs#tag/IGPM
|
|
41
|
+
def last(limit)
|
|
42
|
+
get("/indices/igpm/v1/ultimos", { limit: limit })
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Lista as apurações entre duas datas.
|
|
46
|
+
#
|
|
47
|
+
# @param initial_date [Date, Time, DateTime, String] início do intervalo
|
|
48
|
+
# @param final_date [Date, Time, DateTime, String] fim do intervalo
|
|
49
|
+
# @return [Array<Hash>] apurações do período
|
|
50
|
+
# @raise [BrasilAPI::BadRequest] quando o intervalo é inválido
|
|
51
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
52
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
53
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
54
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
55
|
+
# @example Janeiro de 2024
|
|
56
|
+
# BrasilAPI::IGPM.between("2024-01-01", "2024-02-01")
|
|
57
|
+
# @see https://brasilapi.com.br/docs#tag/IGPM
|
|
58
|
+
def between(initial_date, final_date)
|
|
59
|
+
get(
|
|
60
|
+
"/indices/igpm/v1/intervalo",
|
|
61
|
+
{ initial_date: format_date(initial_date), final_date: format_date(final_date) }
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
data/lib/brasil_api/isbn.rb
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Metadados de livros a partir do ISBN.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/ISBN
|
|
4
12
|
class ISBN < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Busca um livro pelo ISBN.
|
|
15
|
+
#
|
|
16
|
+
# A BrasilAPI valida ISBNs brasileiros (+978+ seguido de +65+ ou +85+).
|
|
17
|
+
# +providers+ vazio omite a query. Valores aceitos: +"cbl"+,
|
|
18
|
+
# +"mercado-editorial"+, +"open-library"+ e +"google-books"+.
|
|
19
|
+
#
|
|
20
|
+
# @param code [String] ISBN-13, com ou sem hífen
|
|
21
|
+
# @param providers [Array<String>] fontes consultadas, separadas por vírgula na API
|
|
22
|
+
# @return [Hash] título, autores e editora
|
|
23
|
+
# @raise [BrasilAPI::BadRequest] quando o ISBN não segue o padrão brasileiro
|
|
24
|
+
# @raise [BrasilAPI::NotFound] quando nenhuma fonte encontra o livro
|
|
25
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
26
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
27
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
28
|
+
# @example Akira, volume 1
|
|
29
|
+
# BrasilAPI::ISBN.search("9788545702870", providers: ["open-library"])
|
|
30
|
+
# @see https://brasilapi.com.br/docs#tag/ISBN
|
|
6
31
|
def search(code, providers: [])
|
|
7
32
|
return get("/isbn/v1/#{code}") if providers.empty?
|
|
8
33
|
|
data/lib/brasil_api/ncm.rb
CHANGED
|
@@ -1,16 +1,59 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Nomenclatura Comum do Mercosul.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/NCM
|
|
4
12
|
class NCM < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Lista todos os códigos NCM.
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<Hash>] código e descrição de cada NCM
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::NCM.all
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/NCM
|
|
6
25
|
def all
|
|
7
26
|
get("/ncm/v1")
|
|
8
27
|
end
|
|
9
28
|
|
|
29
|
+
# Procura códigos NCM por texto ou por prefixo.
|
|
30
|
+
#
|
|
31
|
+
# @param code [String] termo de busca, por exemplo +"cafe"+
|
|
32
|
+
# @return [Array<Hash>] NCMs que correspondem à busca
|
|
33
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
34
|
+
# @raise [BrasilAPI::NotFound] quando nada corresponde
|
|
35
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
36
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
37
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
38
|
+
# @example
|
|
39
|
+
# BrasilAPI::NCM.search("cafe")
|
|
40
|
+
# @see https://brasilapi.com.br/docs#tag/NCM
|
|
10
41
|
def search(code)
|
|
11
42
|
get("/ncm/v1", { search: code })
|
|
12
43
|
end
|
|
13
44
|
|
|
45
|
+
# Busca um NCM pelo código completo.
|
|
46
|
+
#
|
|
47
|
+
# @param code [String] código NCM de oito dígitos
|
|
48
|
+
# @return [Hash] descrição e vigência do código
|
|
49
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
50
|
+
# @raise [BrasilAPI::NotFound] quando o código não existe
|
|
51
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
52
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
53
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
54
|
+
# @example Cavalos reprodutores de raça pura
|
|
55
|
+
# BrasilAPI::NCM.find_by_code("01012100")
|
|
56
|
+
# @see https://brasilapi.com.br/docs#tag/NCM
|
|
14
57
|
def find_by_code(code)
|
|
15
58
|
get("/ncm/v1/#{code}")
|
|
16
59
|
end
|
data/lib/brasil_api/pix.rb
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Participantes do arranjo de pagamentos PIX.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/PIX
|
|
4
12
|
class PIX < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Lista as instituições participantes do PIX.
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<Hash>] ISPB, nome e modalidade de cada participante
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::PIX.all
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/PIX
|
|
6
25
|
def all
|
|
7
26
|
get("/pix/v1/participants")
|
|
8
27
|
end
|
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Disponibilidade de domínios +.br+ no Registro.br.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/REGISTRO-BR
|
|
4
12
|
class RegistroBR < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Consulta o status de um domínio +.br+.
|
|
15
|
+
#
|
|
16
|
+
# @param domain [String] domínio, por exemplo +"google.com.br"+
|
|
17
|
+
# @return [Hash] status +"REGISTERED"+ ou +"AVAILABLE"+ e as datas conhecidas
|
|
18
|
+
# @raise [BrasilAPI::BadRequest] quando o domínio é inválido
|
|
19
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
20
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
21
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
22
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
23
|
+
# @example
|
|
24
|
+
# BrasilAPI::RegistroBR.whois("google.com.br")
|
|
25
|
+
# @see https://brasilapi.com.br/docs#tag/REGISTRO-BR
|
|
6
26
|
def whois(domain)
|
|
7
27
|
get("/registrobr/v1/#{domain}")
|
|
8
28
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
8
|
+
module BrasilAPI
|
|
9
|
+
# Irradiação solar média por localidade.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/SOLAR
|
|
12
|
+
class Solar < Base
|
|
13
|
+
class << self
|
|
14
|
+
# Consulta a incidência solar de uma localidade.
|
|
15
|
+
#
|
|
16
|
+
# A rota é +/solar/v1+ e +location+ pode ser uma cidade ou um par latitude,longitude.
|
|
17
|
+
#
|
|
18
|
+
# @param location [String] localidade, por exemplo +"Teresina"+
|
|
19
|
+
# @return [Hash] irradiação média da localidade
|
|
20
|
+
# @raise [BrasilAPI::BadRequest] quando a localidade é inválida
|
|
21
|
+
# @raise [BrasilAPI::NotFound] quando a localidade não é encontrada
|
|
22
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
23
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
24
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
25
|
+
# @example
|
|
26
|
+
# BrasilAPI::Solar.incidence("Teresina")
|
|
27
|
+
# @see https://brasilapi.com.br/docs#tag/SOLAR
|
|
28
|
+
def incidence(location)
|
|
29
|
+
get("/solar/v1", { location: location })
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
8
|
+
module BrasilAPI
|
|
9
|
+
# Saúde dos serviços da BrasilAPI.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/STATUS
|
|
12
|
+
class Status < Base
|
|
13
|
+
class << self
|
|
14
|
+
# Consulta o status atual da BrasilAPI.
|
|
15
|
+
#
|
|
16
|
+
# @return [Hash] status geral e a situação de cada serviço
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::Status.check
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/STATUS
|
|
25
|
+
def check
|
|
26
|
+
get("/status/v1")
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/lib/brasil_api/taxas.rb
CHANGED
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# @example Bancos participantes do STR
|
|
6
|
+
# BrasilAPI::Bank.all
|
|
7
|
+
# @see https://brasilapi.com.br/docs
|
|
3
8
|
module BrasilAPI
|
|
9
|
+
# Taxas de juros e índices oficiais.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/TAXAS
|
|
4
12
|
class Taxas < Base
|
|
5
13
|
class << self
|
|
14
|
+
# Lista as taxas e os índices acompanhados pela BrasilAPI.
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<Hash>] nome e valor de cada taxa
|
|
17
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
18
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
19
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
20
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
21
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
22
|
+
# @example
|
|
23
|
+
# BrasilAPI::Taxas.all
|
|
24
|
+
# @see https://brasilapi.com.br/docs#tag/TAXAS
|
|
6
25
|
def all
|
|
7
26
|
get("/taxas/v1")
|
|
8
27
|
end
|
|
9
28
|
|
|
29
|
+
# Busca uma taxa pelo nome.
|
|
30
|
+
#
|
|
31
|
+
# @param name [String] nome da taxa, por exemplo +"selic"+ ou +"ipca"+
|
|
32
|
+
# @return [Hash] nome e valor da taxa
|
|
33
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
34
|
+
# @raise [BrasilAPI::NotFound] quando o nome não existe
|
|
35
|
+
# @raise [BrasilAPI::ServerError] quando a fonte da taxa está indisponível
|
|
36
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
37
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
38
|
+
# @example Taxa Selic
|
|
39
|
+
# BrasilAPI::Taxas.find_by_name("selic")
|
|
40
|
+
# @see https://brasilapi.com.br/docs#tag/TAXAS
|
|
10
41
|
def find_by_name(name)
|
|
11
42
|
get("/taxas/v1/#{name}")
|
|
12
43
|
end
|