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.
@@ -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
@@ -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
 
@@ -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
@@ -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
@@ -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