apigratis-sdk-ruby 0.0.1

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.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +27 -0
  3. data/LICENSE +21 -0
  4. data/README.md +330 -0
  5. data/SECURITY.md +32 -0
  6. data/lib/api_brasil/client.rb +252 -0
  7. data/lib/api_brasil/core/env.rb +34 -0
  8. data/lib/api_brasil/core/errors.rb +167 -0
  9. data/lib/api_brasil/core/http_client.rb +342 -0
  10. data/lib/api_brasil/core/retry.rb +69 -0
  11. data/lib/api_brasil/core/transport/faraday_transport.rb +76 -0
  12. data/lib/api_brasil/core/transport/net_http_transport.rb +126 -0
  13. data/lib/api_brasil/core/transport.rb +114 -0
  14. data/lib/api_brasil/generated/catalog.rb +526 -0
  15. data/lib/api_brasil/legacy/service.rb +155 -0
  16. data/lib/api_brasil/services/base_service.rb +49 -0
  17. data/lib/api_brasil/services/data/bulk_service.rb +26 -0
  18. data/lib/api_brasil/services/data/cep_service.rb +58 -0
  19. data/lib/api_brasil/services/data/chip_virtual_service.rb +40 -0
  20. data/lib/api_brasil/services/data/consulta_service.rb +97 -0
  21. data/lib/api_brasil/services/data/correios_service.rb +23 -0
  22. data/lib/api_brasil/services/data/dados_service.rb +30 -0
  23. data/lib/api_brasil/services/data/database_ip_service.rb +19 -0
  24. data/lib/api_brasil/services/data/fipe_service.rb +61 -0
  25. data/lib/api_brasil/services/data/proxies.rb +146 -0
  26. data/lib/api_brasil/services/data/ura_service.rb +26 -0
  27. data/lib/api_brasil/services/data/vehicles_service.rb +46 -0
  28. data/lib/api_brasil/services/device_proxy_service.rb +46 -0
  29. data/lib/api_brasil/services/messaging/evolution_service.rb +38 -0
  30. data/lib/api_brasil/services/messaging/sms_service.rb +40 -0
  31. data/lib/api_brasil/services/messaging/whats_meow_service.rb +30 -0
  32. data/lib/api_brasil/services/messaging/whatsapp_service.rb +120 -0
  33. data/lib/api_brasil/services/platform/account_service.rb +138 -0
  34. data/lib/api_brasil/services/platform/auth_service.rb +204 -0
  35. data/lib/api_brasil/services/platform/bearer_rate_limit_service.rb +29 -0
  36. data/lib/api_brasil/services/platform/catalog_service.rb +111 -0
  37. data/lib/api_brasil/services/platform/devices_service.rb +73 -0
  38. data/lib/api_brasil/services/platform/ip_whitelist_service.rb +73 -0
  39. data/lib/api_brasil/services/platform/payments_service.rb +124 -0
  40. data/lib/api_brasil/services/platform/reports_service.rb +96 -0
  41. data/lib/api_brasil/version.rb +6 -0
  42. data/lib/api_brasil.rb +72 -0
  43. data/lib/apigratis-sdk-ruby.rb +5 -0
  44. data/lib/apigratis.rb +11 -0
  45. metadata +149 -0
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../base_service"
4
+
5
+ module ApiBrasil
6
+ module Services
7
+ module Platform
8
+ # Relatorios e dashboard de consumo (`/reports/*`, `/dashboard/stats`).
9
+ class ReportsService < BaseService
10
+ # Estatisticas do dashboard: `GET /dashboard/stats`.
11
+ #
12
+ # @return [Object]
13
+ def dashboard_stats(options = {})
14
+ get("/dashboard/stats", options)
15
+ end
16
+
17
+ # Consumo: `GET /reports/consumption`.
18
+ #
19
+ # @return [Object]
20
+ def consumption(options = {})
21
+ get("/reports/consumption", options)
22
+ end
23
+
24
+ # Gera relatorio de consumo: `POST /reports/generate-consumption-report`.
25
+ #
26
+ # @return [Object]
27
+ def generate_consumption_report(body = nil, options = {})
28
+ post("/reports/generate-consumption-report", body, options)
29
+ end
30
+
31
+ # Extrato: `GET /reports/extract`.
32
+ #
33
+ # @return [Object]
34
+ def extract(options = {})
35
+ get("/reports/extract", options)
36
+ end
37
+
38
+ # Dashboard de relatorios: `GET /reports/dashboard`.
39
+ #
40
+ # @return [Object]
41
+ def dashboard(options = {})
42
+ get("/reports/dashboard", options)
43
+ end
44
+
45
+ # Resumo: `GET /reports/summary`.
46
+ #
47
+ # @return [Object]
48
+ def summary(options = {})
49
+ get("/reports/summary", options)
50
+ end
51
+
52
+ # Uso diario: `GET /reports/daily-usage`.
53
+ #
54
+ # @return [Object]
55
+ def daily_usage(options = {})
56
+ get("/reports/daily-usage", options)
57
+ end
58
+
59
+ # Resumo mensal: `GET /reports/monthly-summary`.
60
+ #
61
+ # @return [Object]
62
+ def monthly_summary(options = {})
63
+ get("/reports/monthly-summary", options)
64
+ end
65
+
66
+ # Analise de erros: `GET /reports/error-analysis`.
67
+ #
68
+ # @return [Object]
69
+ def error_analysis(options = {})
70
+ get("/reports/error-analysis", options)
71
+ end
72
+
73
+ # Analise por device: `GET /reports/device-analysis`.
74
+ #
75
+ # @return [Object]
76
+ def device_analysis(options = {})
77
+ get("/reports/device-analysis", options)
78
+ end
79
+
80
+ # Requisicoes recentes: `GET /reports/recent-requests`.
81
+ #
82
+ # @return [Object]
83
+ def recent_requests(options = {})
84
+ get("/reports/recent-requests", options)
85
+ end
86
+
87
+ # Estatisticas rapidas: `GET /reports/quick-stats`.
88
+ #
89
+ # @return [Object]
90
+ def quick_stats(options = {})
91
+ get("/reports/quick-stats", options)
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiBrasil
4
+ # Versao da SDK, usada tambem no header User-Agent.
5
+ VERSION = "0.0.1"
6
+ end
data/lib/api_brasil.rb ADDED
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "api_brasil/version"
4
+ require_relative "api_brasil/core/env"
5
+ require_relative "api_brasil/core/errors"
6
+ require_relative "api_brasil/core/retry"
7
+ require_relative "api_brasil/core/transport"
8
+ require_relative "api_brasil/core/http_client"
9
+ require_relative "api_brasil/generated/catalog"
10
+ require_relative "api_brasil/client"
11
+ require_relative "api_brasil/legacy/service"
12
+
13
+ # SDK oficial Ruby da plataforma APIBrasil - WhatsApp, SMS, consultas de
14
+ # CPF/CNPJ, veiculos, CEP, correios, pagamentos PIX/boleto e mais.
15
+ #
16
+ # require "api_brasil"
17
+ #
18
+ # api = ApiBrasil.new(
19
+ # bearer_token: ENV["APIBRASIL_BEARER_TOKEN"],
20
+ # device_token: ENV["APIBRASIL_DEVICE_TOKEN"]
21
+ # )
22
+ #
23
+ # api.whatsapp.send_text("number" => "5511999999999", "text" => "Ola!")
24
+ #
25
+ # Documentacao completa: https://doc.apibrasil.io
26
+ module ApiBrasil
27
+ # Tipos do core reexportados para que o uso do dia a dia precise de um
28
+ # unico require.
29
+ HttpClient = Core::HttpClient
30
+ Env = Core::Env
31
+ Retry = Core::Retry
32
+ Transport = Core::Transport
33
+ TransportRequest = Core::Transport::Request
34
+ TransportResponse = Core::Transport::Response
35
+ NetHttpTransport = Core::Transport::NetHttpTransport
36
+ FaradayTransport = Core::Transport::FaradayTransport
37
+ Catalog = Generated::Catalog
38
+
39
+ # Hierarquia de erros.
40
+ ApiBrasilError = Core::Errors::ApiBrasilError
41
+ ValidationError = Core::Errors::ValidationError
42
+ AuthenticationError = Core::Errors::AuthenticationError
43
+ InsufficientBalanceError = Core::Errors::InsufficientBalanceError
44
+ PermissionError = Core::Errors::PermissionError
45
+ NotFoundError = Core::Errors::NotFoundError
46
+ RateLimitError = Core::Errors::RateLimitError
47
+ ServerError = Core::Errors::ServerError
48
+ NetworkError = Core::Errors::NetworkError
49
+ TimeoutError = Core::Errors::TimeoutError
50
+ ErrorFactory = Core::Errors::ErrorFactory
51
+
52
+ class << self
53
+ # Cria um cliente da plataforma.
54
+ #
55
+ # ApiBrasil.new(bearer_token: "...", device_token: "...")
56
+ #
57
+ # @param config [Hash] veja `ApiBrasil::Core::HttpClient`
58
+ # @return [ApiBrasil::Client]
59
+ def new(config = {})
60
+ Client.new(config)
61
+ end
62
+
63
+ # Faz login e devolve `{ client:, session: }` com o cliente ja autenticado.
64
+ #
65
+ # @param credentials [Hash] `email` e `password`
66
+ # @param config [Hash]
67
+ # @return [Hash]
68
+ def login(credentials, config = {})
69
+ Client.login(credentials, config)
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Atalho para quem prefere `require "apigratis-sdk-ruby"` (nome do gem).
4
+ # A biblioteca vive em `ApiBrasil` - veja `lib/api_brasil.rb`.
5
+ require_relative "api_brasil"
data/lib/apigratis.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "api_brasil"
4
+
5
+ # Namespace legado (`Apigratis::Service`), mantido por compatibilidade com o
6
+ # contrato antigo das SDKs APIGratis.
7
+ #
8
+ # @deprecated Prefira `ApiBrasil.new(...)`.
9
+ module Apigratis
10
+ Service = ApiBrasil::Legacy::Service
11
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apigratis-sdk-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jhon
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.60'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.60'
69
+ description: SDK oficial Ruby da plataforma APIBrasil - WhatsApp, SMS, consultas CPF/CNPJ,
70
+ veiculos, CEP, correios, pagamentos PIX/boleto e mais.
71
+ email:
72
+ - contato@apibrasil.com.br
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - CHANGELOG.md
78
+ - LICENSE
79
+ - README.md
80
+ - SECURITY.md
81
+ - lib/api_brasil.rb
82
+ - lib/api_brasil/client.rb
83
+ - lib/api_brasil/core/env.rb
84
+ - lib/api_brasil/core/errors.rb
85
+ - lib/api_brasil/core/http_client.rb
86
+ - lib/api_brasil/core/retry.rb
87
+ - lib/api_brasil/core/transport.rb
88
+ - lib/api_brasil/core/transport/faraday_transport.rb
89
+ - lib/api_brasil/core/transport/net_http_transport.rb
90
+ - lib/api_brasil/generated/catalog.rb
91
+ - lib/api_brasil/legacy/service.rb
92
+ - lib/api_brasil/services/base_service.rb
93
+ - lib/api_brasil/services/data/bulk_service.rb
94
+ - lib/api_brasil/services/data/cep_service.rb
95
+ - lib/api_brasil/services/data/chip_virtual_service.rb
96
+ - lib/api_brasil/services/data/consulta_service.rb
97
+ - lib/api_brasil/services/data/correios_service.rb
98
+ - lib/api_brasil/services/data/dados_service.rb
99
+ - lib/api_brasil/services/data/database_ip_service.rb
100
+ - lib/api_brasil/services/data/fipe_service.rb
101
+ - lib/api_brasil/services/data/proxies.rb
102
+ - lib/api_brasil/services/data/ura_service.rb
103
+ - lib/api_brasil/services/data/vehicles_service.rb
104
+ - lib/api_brasil/services/device_proxy_service.rb
105
+ - lib/api_brasil/services/messaging/evolution_service.rb
106
+ - lib/api_brasil/services/messaging/sms_service.rb
107
+ - lib/api_brasil/services/messaging/whats_meow_service.rb
108
+ - lib/api_brasil/services/messaging/whatsapp_service.rb
109
+ - lib/api_brasil/services/platform/account_service.rb
110
+ - lib/api_brasil/services/platform/auth_service.rb
111
+ - lib/api_brasil/services/platform/bearer_rate_limit_service.rb
112
+ - lib/api_brasil/services/platform/catalog_service.rb
113
+ - lib/api_brasil/services/platform/devices_service.rb
114
+ - lib/api_brasil/services/platform/ip_whitelist_service.rb
115
+ - lib/api_brasil/services/platform/payments_service.rb
116
+ - lib/api_brasil/services/platform/reports_service.rb
117
+ - lib/api_brasil/version.rb
118
+ - lib/apigratis-sdk-ruby.rb
119
+ - lib/apigratis.rb
120
+ homepage: https://apibrasil.com.br
121
+ licenses:
122
+ - MIT
123
+ metadata:
124
+ homepage_uri: https://apibrasil.com.br
125
+ source_code_uri: https://github.com/jhowbhz/apigratis-sdk-ruby
126
+ bug_tracker_uri: https://github.com/jhowbhz/apigratis-sdk-ruby/issues
127
+ documentation_uri: https://doc.apibrasil.io
128
+ changelog_uri: https://github.com/jhowbhz/apigratis-sdk-ruby/blob/main/CHANGELOG.md
129
+ rubygems_mfa_required: 'true'
130
+ post_install_message:
131
+ rdoc_options: []
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 3.0.0
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ requirements: []
145
+ rubygems_version: 3.5.22
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: SDK oficial Ruby da plataforma APIBrasil
149
+ test_files: []