correios_api 1.0.3 → 1.0.5

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: 335bf657d102f7b2721ba21575c0506e95ff55d12441927a496c1616fd808389
4
- data.tar.gz: e3bcb0d3b002c956f1d4c6e0d8c675fba12d35c549e6099534bcf76978f679f7
3
+ metadata.gz: 548b238ccd30e5e1c7b460ac54b739bccaa56bc87bd352e96e9f4702386b2f07
4
+ data.tar.gz: f2f470ed80bd7376eba7b8d330e5bddd89a5a2e2e5803a5fb74fc7558a111e75
5
5
  SHA512:
6
- metadata.gz: 59cfda1de5f4b772bd8b9ab8f360ce2049812ee1f5c61d77e0adc02fde2037f734021b5793fe03e7a48f5413d1bd49308e16231d7fcfc64992842abbd7b5b157
7
- data.tar.gz: adacb078993d6a177813d8aec2dd7bd5d4d23154fdd85c94d447ddc31b5771d0ab95f3271a506557f6ff714f66ad2bc570b3aae5ee6bd974207a162e64d37454
6
+ metadata.gz: 100553d371266f2205bcf77acae3ae7b68dbb257edb428aac587d64153bf73d137179ccbd8f485f843b9e7ac85d9d24deefd7cec096646cad73ab44dbd1d7711
7
+ data.tar.gz: 8f865e5abf61c9d8d8c4d7fa63c063984d8f4068c67a346d17c767190eefc3b5a4ef69853062915e00a686dff5f2b4493bce922b9fdcc43e861f27b1439795d8
@@ -1,8 +1,9 @@
1
1
  module CorreiosApi
2
2
  class Client < Ac::Base
3
3
  BASE_URL = "https://api.correios.com.br"
4
- MAX_RETRIES = 2
4
+ MAX_RETRIES = 4
5
5
  SAVE_RESPONSES = true
6
+ TIMEOUT = 4
6
7
 
7
8
  SERVICES = [
8
9
  {
@@ -56,7 +57,8 @@ module CorreiosApi
56
57
  "Authorization" => "Basic #{Base64.strict_encode64("#{@username}:#{@password}")}",
57
58
  "Content-Type" => "application/json"
58
59
  },
59
- body: JSON.dump(body)
60
+ body: JSON.dump(body),
61
+ timeout: TIMEOUT
60
62
  ) { |response| validate_response(response, "token") }
61
63
  @token = response.json.dig("token")
62
64
  @expires_in = Time.new(response.json.dig("expiraEm"))
@@ -112,7 +114,8 @@ module CorreiosApi
112
114
  response = post(
113
115
  "/prepostagem/v1/prepostagens",
114
116
  headers: headers,
115
- body: JSON.dump(body)
117
+ body: JSON.dump(body),
118
+ timeout: TIMEOUT
116
119
  ) { |response| validate_response(response, "id") }
117
120
  PreShipping.new(response.json)
118
121
  end
@@ -133,7 +136,8 @@ module CorreiosApi
133
136
  response = post(
134
137
  "/prepostagem/v1/prepostagens/rotulo/assincrono/pdf",
135
138
  headers: headers,
136
- body: JSON.dump(body)
139
+ body: JSON.dump(body),
140
+ timeout: TIMEOUT
137
141
  ) { |response| validate_response(response, "idRecibo") }
138
142
  sleep(0.5) # Tem que esperar o PDF ficar pronto
139
143
  get_label(response.json.dig("idRecibo"))
@@ -153,6 +157,8 @@ module CorreiosApi
153
157
 
154
158
  rates = services_with_time.map do |service_time|
155
159
  service_cost = services_with_cost.find { |service| service["coProduto"] == service_time["coProduto"] }
160
+ next if service_cost.nil?
161
+
156
162
  Rate.new(
157
163
  service_name: SERVICE_NAMES[service_time["coProduto"]],
158
164
  service_code: service_time["coProduto"],
@@ -165,7 +171,7 @@ module CorreiosApi
165
171
  service_time.dig("txErro")
166
172
  ].compact
167
173
  )
168
- end
174
+ end.compact
169
175
  ShippingQuotes.new(rates)
170
176
  end
171
177
 
@@ -176,10 +182,12 @@ module CorreiosApi
176
182
  idLote: "1",
177
183
  parametrosPrazo: SERVICES.map { |service| {coProduto: service[:code], nuRequisicao: 1, cepOrigem: zipcode_from_digits, cepDestino: zipcode_to_digits} }
178
184
  }
185
+
179
186
  response = post(
180
187
  "/prazo/v1/nacional",
181
188
  headers: headers,
182
- body: JSON.dump(body)
189
+ body: JSON.dump(body),
190
+ timeout: TIMEOUT
183
191
  ) { |response| validate_response(response, "coProduto") }
184
192
  response.json
185
193
  end
@@ -204,10 +212,12 @@ module CorreiosApi
204
212
  idLote: "1",
205
213
  parametrosProduto: params_produto
206
214
  }
215
+
207
216
  response = post(
208
217
  "/preco/v1/nacional",
209
218
  headers: headers,
210
- body: JSON.dump(body)
219
+ body: JSON.dump(body),
220
+ timeout: TIMEOUT
211
221
  ) { |response| validate_response(response, "coProduto") }
212
222
  response.json
213
223
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CorreiosApi
4
- VERSION = "1.0.3"
4
+ VERSION = "1.0.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: correios_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todas Essas Coisas
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-10-28 00:00:00.000000000 Z
10
+ date: 2025-05-26 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: codigo_postal
@@ -81,7 +80,6 @@ metadata:
81
80
  homepage_uri: https://github.com/todasessascoisas/correios_api
82
81
  source_code_uri: https://github.com/todasessascoisas/correios_api
83
82
  changelog_uri: https://github.com/todasessascoisas/correios_api
84
- post_install_message:
85
83
  rdoc_options: []
86
84
  require_paths:
87
85
  - lib
@@ -96,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
94
  - !ruby/object:Gem::Version
97
95
  version: '0'
98
96
  requirements: []
99
- rubygems_version: 3.5.16
100
- signing_key:
97
+ rubygems_version: 3.6.2
101
98
  specification_version: 4
102
99
  summary: ''
103
100
  test_files: []