shipengine_ruby 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e71d0f701b2d46e93397277c9fde2775529325ec32bf087c76662ca670f0da1
4
- data.tar.gz: 7b0a8fab8dbe86a732683aa2c1a1c98071e13e492f3e1b8fd68e5bc3ca037b9f
3
+ metadata.gz: 623cec2a7f40bf13f4f6094812d11e4b5a929bf8ce81f67a8472493fdef3bd6d
4
+ data.tar.gz: 84cd4bf666bb3c72f89b3c0a051ba2362e41bfe07092f90c3234700877491b3d
5
5
  SHA512:
6
- metadata.gz: 9f1710164c2a76e9f6c35baf03c5d58964574e80e1d148d558f0b7869b59876c1be5b3a9a1a53a1a0c345578a11971a8e960a2a2e1666969faea4c00b4dbf059
7
- data.tar.gz: f4171710c30681741120ab9e0f20e31cd82f5c1f48b51f9b46764ed819b45872bc80175f4f96f9b619abd34b4250aa0acc60c33cbd91a6c700bee45982a60667
6
+ metadata.gz: 062cc63359517d87dc76ffd2a0c6853da7eff55e6c0565b1f4452ad2029c1a51fce1f619fdccdc0472e38655550adc9ab1cc3afabea39f189456e21167abd294
7
+ data.tar.gz: d7eb59f62036b13b3b632f75c11bfd1285a6eef21a96d4aff3b31f3b4d1ae96b06baa75f962b1ff9172d25ce9ec141a39ecec0e8e93c9599ec0b35b127ff21bc
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.7
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shipengine_ruby (0.0.5)
4
+ shipengine_ruby (0.0.7)
5
5
  faraday (~> 1.0)
6
6
  faraday_middleware (~> 1.0)
7
- hashie (~> 3.4)
7
+ hashie (~> 5.0)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -16,7 +16,7 @@ GEM
16
16
  crack (0.4.5)
17
17
  rexml
18
18
  diff-lcs (1.5.0)
19
- faraday (1.10.2)
19
+ faraday (1.10.3)
20
20
  faraday-em_http (~> 1.0)
21
21
  faraday-em_synchrony (~> 1.0)
22
22
  faraday-excon (~> 1.1)
@@ -42,9 +42,9 @@ GEM
42
42
  faraday_middleware (1.2.0)
43
43
  faraday (~> 1.0)
44
44
  hashdiff (1.0.1)
45
- hashie (3.6.0)
45
+ hashie (5.0.0)
46
46
  method_source (1.0.0)
47
- multipart-post (2.2.3)
47
+ multipart-post (2.3.0)
48
48
  parallel (1.22.1)
49
49
  parser (3.1.2.1)
50
50
  ast (~> 2.4.1)
@@ -1,42 +1,49 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module ShipEngine
3
+ module ShipEngine
4
4
  module Enums
5
5
  module WebhooksTypes
6
6
  ##
7
7
  # Batch completed
8
8
  # #/
9
9
  API_BATCH = "batch"
10
+ API_BATCH_RESOURCE_TYPE = "API_BATCH"
10
11
 
11
12
  ##
12
13
  # Shipment rate updated
13
14
  # #/
14
15
  API_RATE = "rate"
16
+ API_RATE_RESOURCE_TYPE = "API_RATE"
15
17
 
16
18
  ##
17
19
  # Any tracking event
18
20
  # #/
19
21
  API_TRACK = "track"
22
+ API_TRACK_RESOURCE_TYPE = "API_TRACK"
20
23
 
21
24
  ##
22
25
  # Carrier connected
23
26
  # #/
24
27
  API_CARRIER_CONNECTED = "carrier_connected"
28
+ API_CARRIER_CONNECTED_RESOURCE_TYPE = "API_CARRIER_CONNECTED"
25
29
 
26
30
  ##
27
31
  # Sales Orders imported (Beta)
28
32
  # #/
29
33
  API_SALES_ORDERS_IMPORTED = "sales_orders_imported"
34
+ API_SALES_ORDERS_IMPORTED_RESOURCE_TYPE = "API_SALES_ORDERS_IMPORTED"
30
35
 
31
36
  ##
32
37
  # Order Source refresh complete (Beta)
33
38
  # #/
34
39
  API_ORDER_SOURCE_REFRESH_COMPLETE = "order_source_refresh_complete"
40
+ API_ORDER_SOURCE_REFRESH_COMPLETE_RESOURCE_TYPE = "API_ORDER_SOURCE_REFRESH_COMPLETE"
35
41
 
36
42
  ##
37
43
  # A requested report is ready
38
44
  # #/
39
45
  API_REPORT_COMPLETE = "report_complete"
46
+ API_REPORT_COMPLETE_RESOURCE_TYPE = "API_REPORT_COMPLETE"
40
47
 
41
48
  ALL = [
42
49
  API_BATCH,
@@ -8,12 +8,13 @@ module ShipEngine
8
8
  module Exceptions
9
9
  class ShipEngineError < StandardError
10
10
  # message is inherited
11
- attr_reader :source, :type, :code, :url
11
+ attr_reader :source, :type, :code, :request_id, :url
12
12
 
13
- def initialize(message:, source:, type:, code:, url: nil)
13
+ def initialize(message:, source:, type:, code:, request_id: nil, url: nil)
14
14
  code = ShipEngine::Errors::ErrorCode.get(code) if code.is_a?(String)
15
15
  source = ShipEngine::Errors::ErrorSource.get(source) if source.is_a?(String)
16
16
  super(message)
17
+ @request_id = request_id
17
18
  @source = source
18
19
  @type = type
19
20
  @code = code
@@ -46,32 +47,34 @@ module ShipEngine
46
47
  source: source,
47
48
  message: message,
48
49
  type: ShipEngine::Errors::ErrorType.get(:VALIDATION),
49
- )
50
+ )
50
51
  end
51
52
  end
52
53
 
53
54
  class SystemError < ShipEngineError
54
- def initialize(message:, code:, source: nil, url: nil)
55
+ def initialize(message:, code:, source: nil, url: nil, request_id: nil)
55
56
  super(
56
57
  url: url,
57
58
  code: code,
58
59
  source: source,
59
60
  message: message,
61
+ request_id: request_id,
60
62
  type: ShipEngine::Errors::ErrorType.get(:SYSTEM),
61
- )
63
+ )
62
64
  end
63
65
  end
64
66
 
65
67
  class RateLimitError < SystemError
66
68
  attr_reader :retries
67
69
 
68
- def initialize(retries: nil, message: "You have exceeded the rate limit.", source: nil)
70
+ def initialize(retries: nil, message: "You have exceeded the rate limit.", source: nil, request_id: nil)
69
71
  super(
70
72
  message: message,
71
73
  code: ShipEngine::Errors::ErrorCode.get(:RATE_LIMIT_EXCEEDED),
72
74
  source: source,
75
+ request_id: request_id,
73
76
  url: URI("https://www.shipengine.com/docs/rate-limits"),
74
- )
77
+ )
75
78
  @retries = retries
76
79
  end
77
80
  end
@@ -14,11 +14,13 @@ module ShipEngine
14
14
  source: error_source(response[:body]),
15
15
  type: error_type(response[:body]),
16
16
  code: error_code(response[:body]),
17
+ request_id: error_request_id(response[:body]),
17
18
  url: response[:url].to_s
18
19
  )
19
20
  elsif [429].include?(status_code)
20
21
  raise ShipEngine::Exceptions::RateLimitError.new(
21
22
  retries: env.request_headers["Retries"].to_i,
23
+ request_id: error_request_id(response[:body]),
22
24
  source: error_source(response[:body])
23
25
  )
24
26
  end
@@ -78,6 +80,18 @@ module ShipEngine
78
80
  body["errors"][0]["error_code"]
79
81
  end
80
82
  end
83
+
84
+ def error_request_id(body)
85
+ if !body.nil? && !body.empty? && body.is_a?(String)
86
+ body = JSON.parse(body)
87
+ end
88
+
89
+ if body.nil?
90
+ nil
91
+ elsif body["request_id"]
92
+ body["request_id"]
93
+ end
94
+ end
81
95
  end
82
96
  end
83
97
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ShipEngine
4
4
  module VERSION
5
- VERSION = "0.0.5"
5
+ VERSION = "0.0.7"
6
6
  end
7
7
  end
data/shipengine.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_runtime_dependency("faraday", "~> 1.0")
30
30
  spec.add_runtime_dependency("faraday_middleware", "~> 1.0")
31
- spec.add_runtime_dependency("hashie", "~> 3.4")
31
+ spec.add_runtime_dependency("hashie", "~> 5.0")
32
32
 
33
33
  spec.add_development_dependency("bundler", "~> 1.17")
34
34
  spec.add_development_dependency("pry", "~> 0.14")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipengine_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mohammed Abdel Raouf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-10 00:00:00.000000000 Z
11
+ date: 2023-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.4'
47
+ version: '5.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.4'
54
+ version: '5.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +174,7 @@ files:
174
174
  - ".gitignore"
175
175
  - ".rspec"
176
176
  - ".rubocop.yml"
177
+ - ".tool-versions"
177
178
  - CODE_OF_CONDUCT.md
178
179
  - Gemfile
179
180
  - Gemfile.lock
@@ -241,8 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
242
  - !ruby/object:Gem::Version
242
243
  version: '0'
243
244
  requirements: []
244
- rubyforge_project:
245
- rubygems_version: 2.7.6.2
245
+ rubygems_version: 3.4.6
246
246
  signing_key:
247
247
  specification_version: 4
248
248
  summary: Ruby SDK for ShipEngine