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
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
# Terminologia Unificada da Saúde Suplementar.
|
|
10
|
+
#
|
|
11
|
+
# @see https://brasilapi.com.br/docs#tag/TUSS
|
|
12
|
+
class TUSS < Base
|
|
13
|
+
# Filtros de listagem, busca e autocompletar, e o nome enviado na query.
|
|
14
|
+
#
|
|
15
|
+
# @return [Hash{Symbol=>Symbol}]
|
|
16
|
+
PARAMS = {
|
|
17
|
+
query: :q,
|
|
18
|
+
name: :name,
|
|
19
|
+
code: :tuss,
|
|
20
|
+
match: :match,
|
|
21
|
+
sort: :sort,
|
|
22
|
+
order: :order,
|
|
23
|
+
fields: :fields,
|
|
24
|
+
limit: :limit,
|
|
25
|
+
offset: :offset
|
|
26
|
+
}.freeze
|
|
27
|
+
|
|
28
|
+
class << self
|
|
29
|
+
# Lista procedimentos da TUSS.
|
|
30
|
+
#
|
|
31
|
+
# @param filters [Hash] filtros opcionais
|
|
32
|
+
# @option filters [String] :query texto livre (+q+)
|
|
33
|
+
# @option filters [String] :name nome do procedimento
|
|
34
|
+
# @option filters [String] :code código TUSS (+tuss+)
|
|
35
|
+
# @option filters [String] :match modo de correspondência
|
|
36
|
+
# @option filters [String] :sort campo de ordenação
|
|
37
|
+
# @option filters [String] :order direção da ordenação
|
|
38
|
+
# @option filters [String] :fields campos devolvidos
|
|
39
|
+
# @option filters [Integer] :limit quantidade máxima de itens
|
|
40
|
+
# @option filters [Integer] :offset deslocamento da página
|
|
41
|
+
# @return [Hash] total e lista de procedimentos
|
|
42
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
43
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
44
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
45
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
46
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
47
|
+
# @example Primeiro procedimento
|
|
48
|
+
# BrasilAPI::TUSS.all(limit: 1)
|
|
49
|
+
# @see https://brasilapi.com.br/docs#tag/TUSS
|
|
50
|
+
def all(**filters)
|
|
51
|
+
get("/tuss/v1", translate(filters, PARAMS))
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Busca um procedimento pelo código TUSS.
|
|
55
|
+
#
|
|
56
|
+
# @param code [String, Integer] código do procedimento
|
|
57
|
+
# @return [Hash] descrição do procedimento
|
|
58
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
59
|
+
# @raise [BrasilAPI::NotFound] quando o código não existe
|
|
60
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
61
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
62
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
63
|
+
# @example Consulta em consultório
|
|
64
|
+
# BrasilAPI::TUSS.find_by_code("10101012")
|
|
65
|
+
# @see https://brasilapi.com.br/docs#tag/TUSS
|
|
66
|
+
def find_by_code(code)
|
|
67
|
+
get("/tuss/v1/#{code}")
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Procura procedimentos por texto e filtros.
|
|
71
|
+
#
|
|
72
|
+
# @param filters [Hash] filtros opcionais; as chaves são as de {PARAMS}
|
|
73
|
+
# @option filters [String] :query texto livre (+q+)
|
|
74
|
+
# @option filters [String] :name nome do procedimento
|
|
75
|
+
# @option filters [String] :code código TUSS (+tuss+)
|
|
76
|
+
# @option filters [String] :match modo de correspondência
|
|
77
|
+
# @option filters [String] :sort campo de ordenação
|
|
78
|
+
# @option filters [String] :order direção da ordenação
|
|
79
|
+
# @option filters [String] :fields campos devolvidos
|
|
80
|
+
# @option filters [Integer] :limit quantidade máxima de itens
|
|
81
|
+
# @option filters [Integer] :offset deslocamento da página
|
|
82
|
+
# @return [Hash] total e procedimentos encontrados
|
|
83
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
84
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
85
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
86
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
87
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
88
|
+
# @example
|
|
89
|
+
# BrasilAPI::TUSS.search(query: "consulta", limit: 1)
|
|
90
|
+
# @see https://brasilapi.com.br/docs#tag/TUSS
|
|
91
|
+
def search(**filters)
|
|
92
|
+
get("/tuss/v1/search", translate(filters, PARAMS))
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Sugere procedimentos a partir de um prefixo.
|
|
96
|
+
#
|
|
97
|
+
# @param filters [Hash] filtros opcionais; as chaves são as de {PARAMS}
|
|
98
|
+
# @option filters [String] :query texto livre (+q+)
|
|
99
|
+
# @option filters [String] :name nome do procedimento
|
|
100
|
+
# @option filters [String] :code código TUSS (+tuss+)
|
|
101
|
+
# @option filters [String] :match modo de correspondência
|
|
102
|
+
# @option filters [String] :sort campo de ordenação
|
|
103
|
+
# @option filters [String] :order direção da ordenação
|
|
104
|
+
# @option filters [String] :fields campos devolvidos
|
|
105
|
+
# @option filters [Integer] :limit quantidade máxima de itens
|
|
106
|
+
# @option filters [Integer] :offset deslocamento da página
|
|
107
|
+
# @return [Hash] sugestões de procedimentos
|
|
108
|
+
# @raise [BrasilAPI::BadRequest] quando a BrasilAPI responde 400
|
|
109
|
+
# @raise [BrasilAPI::NotFound] quando a BrasilAPI responde 404
|
|
110
|
+
# @raise [BrasilAPI::ServerError] quando a BrasilAPI responde 5xx
|
|
111
|
+
# @raise [BrasilAPI::Timeout] quando a requisição estoura o tempo limite
|
|
112
|
+
# @raise [BrasilAPI::Error] em outras respostas de erro
|
|
113
|
+
# @example
|
|
114
|
+
# BrasilAPI::TUSS.autocomplete(query: "cons", limit: 5)
|
|
115
|
+
# @see https://brasilapi.com.br/docs#tag/TUSS
|
|
116
|
+
def autocomplete(**filters)
|
|
117
|
+
get("/tuss/v1/autocomplete", translate(filters, PARAMS))
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
data/lib/brasil_api/version.rb
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
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
|
|
4
|
-
|
|
9
|
+
# Versão publicada da gem, no formato +MAJOR.MINOR.PATCH+.
|
|
10
|
+
VERSION = "0.9.0"
|
|
5
11
|
end
|
data/lib/brasil_api.rb
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Cliente Ruby da {https://brasilapi.com.br BrasilAPI}.
|
|
4
|
+
#
|
|
5
|
+
# Cada família de endpoint é uma classe com métodos de classe.
|
|
6
|
+
#
|
|
7
|
+
# @example Bancos participantes do STR
|
|
8
|
+
# BrasilAPI::Bank.all
|
|
9
|
+
# @see https://brasilapi.com.br/docs
|
|
10
|
+
module BrasilAPI
|
|
11
|
+
end
|
|
12
|
+
|
|
3
13
|
require_relative "brasil_api/version"
|
|
14
|
+
require_relative "brasil_api/configuration"
|
|
15
|
+
require_relative "brasil_api/error"
|
|
4
16
|
require_relative "brasil_api/base"
|
|
5
17
|
require_relative "brasil_api/address"
|
|
6
18
|
require_relative "brasil_api/bank"
|
|
@@ -15,8 +27,16 @@ require_relative "brasil_api/ncm"
|
|
|
15
27
|
require_relative "brasil_api/pix"
|
|
16
28
|
require_relative "brasil_api/registrobr"
|
|
17
29
|
require_relative "brasil_api/taxas"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
require_relative "brasil_api/b3"
|
|
31
|
+
require_relative "brasil_api/business_days"
|
|
32
|
+
require_relative "brasil_api/cambio"
|
|
33
|
+
require_relative "brasil_api/cid10"
|
|
34
|
+
require_relative "brasil_api/cpf"
|
|
35
|
+
require_relative "brasil_api/ddd"
|
|
36
|
+
require_relative "brasil_api/geolocation"
|
|
37
|
+
require_relative "brasil_api/hospital"
|
|
38
|
+
require_relative "brasil_api/ibpt"
|
|
39
|
+
require_relative "brasil_api/igpm"
|
|
40
|
+
require_relative "brasil_api/solar"
|
|
41
|
+
require_relative "brasil_api/status"
|
|
42
|
+
require_relative "brasil_api/tuss"
|
metadata
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brasilapi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dayvid Emerson
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies: []
|
|
12
12
|
description: Acesso programático de informações é algo fundamental na comunicação
|
|
13
13
|
entre sistemas, mas, para nossa surpresa, uma informação tão útil e pública quanto
|
|
14
14
|
um CEP não consegue ser acessada diretamente por um navegador por conta da API dos
|
|
15
|
-
Correios não possuir CORS habilitado. Dado
|
|
16
|
-
|
|
15
|
+
Correios não possuir CORS habilitado. Dado isso, este projeto experimental tem como
|
|
16
|
+
objetivo centralizar e disponibilizar endpoints modernos com baixíssima latência
|
|
17
17
|
utilizando tecnologias como Vercel Smart CDN responsável por fazer o cache das informações
|
|
18
18
|
em atualmente 23 regiões distribuídas ao longo do mundo (incluindo Brasil). Então
|
|
19
19
|
não importa o quão devagar for a fonte dos dados, nós queremos disponibilizá-la
|
|
@@ -26,6 +26,7 @@ extra_rdoc_files: []
|
|
|
26
26
|
files:
|
|
27
27
|
- ".rspec"
|
|
28
28
|
- ".rubocop.yml"
|
|
29
|
+
- ".yardopts"
|
|
29
30
|
- CHANGELOG.md
|
|
30
31
|
- CODE_OF_CONDUCT.md
|
|
31
32
|
- Gemfile
|
|
@@ -33,22 +34,36 @@ files:
|
|
|
33
34
|
- LICENSE.txt
|
|
34
35
|
- README.md
|
|
35
36
|
- Rakefile
|
|
36
|
-
- brasilapi.gemspec
|
|
37
37
|
- lib/brasil_api.rb
|
|
38
38
|
- lib/brasil_api/address.rb
|
|
39
|
+
- lib/brasil_api/b3.rb
|
|
39
40
|
- lib/brasil_api/bank.rb
|
|
40
41
|
- lib/brasil_api/base.rb
|
|
42
|
+
- lib/brasil_api/business_days.rb
|
|
43
|
+
- lib/brasil_api/cambio.rb
|
|
44
|
+
- lib/brasil_api/cid10.rb
|
|
41
45
|
- lib/brasil_api/company.rb
|
|
46
|
+
- lib/brasil_api/configuration.rb
|
|
47
|
+
- lib/brasil_api/cpf.rb
|
|
42
48
|
- lib/brasil_api/cptec.rb
|
|
43
49
|
- lib/brasil_api/cvm.rb
|
|
50
|
+
- lib/brasil_api/ddd.rb
|
|
51
|
+
- lib/brasil_api/error.rb
|
|
44
52
|
- lib/brasil_api/fipe.rb
|
|
53
|
+
- lib/brasil_api/geolocation.rb
|
|
45
54
|
- lib/brasil_api/holiday.rb
|
|
55
|
+
- lib/brasil_api/hospital.rb
|
|
46
56
|
- lib/brasil_api/ibge.rb
|
|
57
|
+
- lib/brasil_api/ibpt.rb
|
|
58
|
+
- lib/brasil_api/igpm.rb
|
|
47
59
|
- lib/brasil_api/isbn.rb
|
|
48
60
|
- lib/brasil_api/ncm.rb
|
|
49
61
|
- lib/brasil_api/pix.rb
|
|
50
62
|
- lib/brasil_api/registrobr.rb
|
|
63
|
+
- lib/brasil_api/solar.rb
|
|
64
|
+
- lib/brasil_api/status.rb
|
|
51
65
|
- lib/brasil_api/taxas.rb
|
|
66
|
+
- lib/brasil_api/tuss.rb
|
|
52
67
|
- lib/brasil_api/version.rb
|
|
53
68
|
- lib/brasilapi.rb
|
|
54
69
|
homepage: https://brasilapi.com.br
|
|
@@ -58,7 +73,9 @@ metadata:
|
|
|
58
73
|
homepage_uri: https://brasilapi.com.br
|
|
59
74
|
source_code_uri: https://github.com/dayvidemerson/brasilapi-rb
|
|
60
75
|
changelog_uri: https://github.com/dayvidemerson/brasilapi-rb/blob/main/CHANGELOG.md
|
|
76
|
+
documentation_uri: https://rubydoc.info/gems/brasilapi
|
|
61
77
|
rubygems_mfa_required: 'true'
|
|
78
|
+
github_repo: ssh://github.com/dayvidemerson/brasilapi-rb
|
|
62
79
|
rdoc_options: []
|
|
63
80
|
require_paths:
|
|
64
81
|
- lib
|
|
@@ -66,14 +83,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
66
83
|
requirements:
|
|
67
84
|
- - ">="
|
|
68
85
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
86
|
+
version: 3.3.0
|
|
70
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
88
|
requirements:
|
|
72
89
|
- - ">="
|
|
73
90
|
- !ruby/object:Gem::Version
|
|
74
91
|
version: '0'
|
|
75
92
|
requirements: []
|
|
76
|
-
rubygems_version: 3.6.
|
|
93
|
+
rubygems_version: 3.6.9
|
|
77
94
|
specification_version: 4
|
|
78
95
|
summary: Cliente desenvolvido em Ruby para o consumo da Brasil API que permite buscar
|
|
79
96
|
informações públicas referentes ao Brasil de modo eficiente e simplificado.
|
data/brasilapi.gemspec
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "lib/brasil_api/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name = "brasilapi"
|
|
7
|
-
spec.version = BrasilAPI::VERSION
|
|
8
|
-
spec.authors = ["Dayvid Emerson"]
|
|
9
|
-
spec.email = ["dayvidemerson96@gmail.com"]
|
|
10
|
-
|
|
11
|
-
spec.summary = "Cliente desenvolvido em Ruby para o consumo da Brasil API que permite buscar informações públicas " \
|
|
12
|
-
"referentes ao Brasil de modo eficiente e simplificado."
|
|
13
|
-
|
|
14
|
-
spec.description = "Acesso programático de informações é algo fundamental na comunicação entre sistemas, mas, para " \
|
|
15
|
-
"nossa surpresa, uma informação tão útil e pública quanto um CEP não consegue ser acessada " \
|
|
16
|
-
"diretamente por um navegador por conta da API dos Correios não possuir CORS habilitado. Dado a" \
|
|
17
|
-
"isso, este projeto experimental tem como objetivo centralizar e disponibilizar endpoints " \
|
|
18
|
-
"modernos com baixíssima latência utilizando tecnologias como Vercel Smart CDN responsável por " \
|
|
19
|
-
"fazer o cache das informações em atualmente 23 regiões distribuídas ao longo do mundo " \
|
|
20
|
-
"(incluindo Brasil). Então não importa o quão devagar for a fonte dos dados, nós queremos " \
|
|
21
|
-
"disponibilizá-la da forma mais rápida e moderna possível."
|
|
22
|
-
|
|
23
|
-
spec.homepage = "https://brasilapi.com.br"
|
|
24
|
-
spec.license = "MIT"
|
|
25
|
-
spec.required_ruby_version = ">= 2.6.0"
|
|
26
|
-
|
|
27
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
|
28
|
-
spec.metadata["source_code_uri"] = "https://github.com/dayvidemerson/brasilapi-rb"
|
|
29
|
-
spec.metadata["changelog_uri"] = "https://github.com/dayvidemerson/brasilapi-rb/blob/main/CHANGELOG.md"
|
|
30
|
-
spec.metadata["rubygems_mfa_required"] = "true"
|
|
31
|
-
|
|
32
|
-
# Specify which files should be added to the gem when it is released.
|
|
33
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
34
|
-
spec.files = Dir.chdir(__dir__) do
|
|
35
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
|
36
|
-
(File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
spec.bindir = "exe"
|
|
40
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
41
|
-
spec.require_paths = ["lib"]
|
|
42
|
-
end
|