friendly_shipping 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop-relaxed.yml +3 -4
  3. data/.rubocop.yml +9 -0
  4. data/CHANGELOG.md +5 -1
  5. data/friendly_shipping.gemspec +10 -10
  6. data/lib/friendly_shipping/api_failure.rb +2 -15
  7. data/lib/friendly_shipping/services/ups/parse_address_classification_response.rb +5 -2
  8. data/lib/friendly_shipping/services/ups/parse_address_validation_response.rb +5 -2
  9. data/lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb +5 -2
  10. data/lib/friendly_shipping/services/ups/parse_rate_response.rb +5 -1
  11. data/lib/friendly_shipping/services/ups/parse_shipment_accept_response.rb +5 -1
  12. data/lib/friendly_shipping/services/ups/parse_shipment_confirm_response.rb +5 -1
  13. data/lib/friendly_shipping/services/ups/parse_time_in_transit_response.rb +5 -1
  14. data/lib/friendly_shipping/services/ups/parse_void_shipment_response.rb +5 -1
  15. data/lib/friendly_shipping/services/ups/parse_xml_response.rb +16 -7
  16. data/lib/friendly_shipping/services/ups_freight/generate_delivery_options_hash.rb +21 -0
  17. data/lib/friendly_shipping/services/ups_freight/generate_document_options_hash.rb +28 -0
  18. data/lib/friendly_shipping/services/ups_freight/generate_email_options_hash.rb +25 -0
  19. data/lib/friendly_shipping/services/ups_freight/generate_freight_rate_request_hash.rb +2 -10
  20. data/lib/friendly_shipping/services/ups_freight/generate_freight_ship_request_hash.rb +81 -0
  21. data/lib/friendly_shipping/services/ups_freight/generate_location_hash.rb +5 -2
  22. data/lib/friendly_shipping/services/ups_freight/generate_pickup_options_hash.rb +21 -0
  23. data/lib/friendly_shipping/services/ups_freight/generate_pickup_request_hash.rb +31 -0
  24. data/lib/friendly_shipping/services/ups_freight/label_delivery_options.rb +29 -0
  25. data/lib/friendly_shipping/services/ups_freight/label_document_options.rb +56 -0
  26. data/lib/friendly_shipping/services/ups_freight/label_email_options.rb +40 -0
  27. data/lib/friendly_shipping/services/ups_freight/label_item_options.rb +10 -0
  28. data/lib/friendly_shipping/services/ups_freight/label_options.rb +37 -0
  29. data/lib/friendly_shipping/services/ups_freight/label_package_options.rb +10 -0
  30. data/lib/friendly_shipping/services/ups_freight/label_pickup_options.rb +29 -0
  31. data/lib/friendly_shipping/services/ups_freight/parse_freight_label_response.rb +57 -0
  32. data/lib/friendly_shipping/services/ups_freight/parse_freight_rate_response.rb +29 -32
  33. data/lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb +24 -0
  34. data/lib/friendly_shipping/services/ups_freight/pickup_request_options.rb +29 -0
  35. data/lib/friendly_shipping/services/ups_freight/rates_options.rb +3 -6
  36. data/lib/friendly_shipping/services/ups_freight/restful_api_error_handler.rb +24 -0
  37. data/lib/friendly_shipping/services/ups_freight/shipment_document.rb +21 -0
  38. data/lib/friendly_shipping/services/ups_freight/shipment_information.rb +35 -0
  39. data/lib/friendly_shipping/services/ups_freight.rb +42 -12
  40. data/lib/friendly_shipping/services/usps/parse_address_validation_response.rb +5 -1
  41. data/lib/friendly_shipping/services/usps/parse_city_state_lookup_response.rb +5 -1
  42. data/lib/friendly_shipping/services/usps/parse_rate_response.rb +5 -2
  43. data/lib/friendly_shipping/services/usps/parse_time_in_transit_response.rb +5 -1
  44. data/lib/friendly_shipping/services/usps/parse_xml_response.rb +15 -5
  45. data/lib/friendly_shipping/version.rb +1 -1
  46. metadata +70 -35
  47. data/lib/friendly_shipping/services/ups_freight/generate_ups_security_hash.rb +0 -23
  48. data/lib/friendly_shipping/services/ups_freight/parse_json_response.rb +0 -38
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friendly_shipping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Meyerhoff
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: data_uri
@@ -42,34 +42,37 @@ dependencies:
42
42
  name: money
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 6.0.0
47
+ version: '6.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: 6.0.0
54
+ version: '6.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.6'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: physical
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.4'
73
76
  - - ">="
74
77
  - !ruby/object:Gem::Version
75
78
  version: 0.4.4
@@ -77,6 +80,9 @@ dependencies:
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '0.4'
80
86
  - - ">="
81
87
  - !ruby/object:Gem::Version
82
88
  version: 0.4.4
@@ -100,28 +106,34 @@ dependencies:
100
106
  requirements:
101
107
  - - ">="
102
108
  - !ruby/object:Gem::Version
103
- version: '0'
109
+ version: '1.17'
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '3'
104
113
  type: :development
105
114
  prerelease: false
106
115
  version_requirements: !ruby/object:Gem::Requirement
107
116
  requirements:
108
117
  - - ">="
109
118
  - !ruby/object:Gem::Version
110
- version: '0'
119
+ version: '1.17'
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: '3'
111
123
  - !ruby/object:Gem::Dependency
112
124
  name: dotenv
113
125
  requirement: !ruby/object:Gem::Requirement
114
126
  requirements:
115
- - - ">="
127
+ - - "~>"
116
128
  - !ruby/object:Gem::Version
117
- version: '0'
129
+ version: '2.7'
118
130
  type: :development
119
131
  prerelease: false
120
132
  version_requirements: !ruby/object:Gem::Requirement
121
133
  requirements:
122
- - - ">="
134
+ - - "~>"
123
135
  - !ruby/object:Gem::Version
124
- version: '0'
136
+ version: '2.7'
125
137
  - !ruby/object:Gem::Dependency
126
138
  name: factory_bot
127
139
  requirement: !ruby/object:Gem::Requirement
@@ -140,16 +152,16 @@ dependencies:
140
152
  name: pry
141
153
  requirement: !ruby/object:Gem::Requirement
142
154
  requirements:
143
- - - ">="
155
+ - - "~>"
144
156
  - !ruby/object:Gem::Version
145
- version: '0'
157
+ version: '0.12'
146
158
  type: :development
147
159
  prerelease: false
148
160
  version_requirements: !ruby/object:Gem::Requirement
149
161
  requirements:
150
- - - ">="
162
+ - - "~>"
151
163
  - !ruby/object:Gem::Version
152
- version: '0'
164
+ version: '0.12'
153
165
  - !ruby/object:Gem::Dependency
154
166
  name: rake
155
167
  requirement: !ruby/object:Gem::Requirement
@@ -198,56 +210,62 @@ dependencies:
198
210
  requirements:
199
211
  - - ">="
200
212
  - !ruby/object:Gem::Version
201
- version: '0'
213
+ version: '0.80'
214
+ - - "<"
215
+ - !ruby/object:Gem::Version
216
+ version: '1'
202
217
  type: :development
203
218
  prerelease: false
204
219
  version_requirements: !ruby/object:Gem::Requirement
205
220
  requirements:
206
221
  - - ">="
207
222
  - !ruby/object:Gem::Version
208
- version: '0'
223
+ version: '0.80'
224
+ - - "<"
225
+ - !ruby/object:Gem::Version
226
+ version: '1'
209
227
  - !ruby/object:Gem::Dependency
210
228
  name: simplecov
211
229
  requirement: !ruby/object:Gem::Requirement
212
230
  requirements:
213
- - - ">="
231
+ - - "~>"
214
232
  - !ruby/object:Gem::Version
215
- version: '0'
233
+ version: '0.17'
216
234
  type: :development
217
235
  prerelease: false
218
236
  version_requirements: !ruby/object:Gem::Requirement
219
237
  requirements:
220
- - - ">="
238
+ - - "~>"
221
239
  - !ruby/object:Gem::Version
222
- version: '0'
240
+ version: '0.17'
223
241
  - !ruby/object:Gem::Dependency
224
242
  name: vcr
225
243
  requirement: !ruby/object:Gem::Requirement
226
244
  requirements:
227
- - - ">="
245
+ - - "~>"
228
246
  - !ruby/object:Gem::Version
229
- version: '0'
247
+ version: '5.0'
230
248
  type: :development
231
249
  prerelease: false
232
250
  version_requirements: !ruby/object:Gem::Requirement
233
251
  requirements:
234
- - - ">="
252
+ - - "~>"
235
253
  - !ruby/object:Gem::Version
236
- version: '0'
254
+ version: '5.0'
237
255
  - !ruby/object:Gem::Dependency
238
256
  name: webmock
239
257
  requirement: !ruby/object:Gem::Requirement
240
258
  requirements:
241
- - - ">="
259
+ - - "~>"
242
260
  - !ruby/object:Gem::Version
243
- version: '0'
261
+ version: '3.6'
244
262
  type: :development
245
263
  prerelease: false
246
264
  version_requirements: !ruby/object:Gem::Requirement
247
265
  requirements:
248
- - - ">="
266
+ - - "~>"
249
267
  - !ruby/object:Gem::Version
250
- version: '0'
268
+ version: '3.6'
251
269
  description: Allows you to quote or ship a Physical::Shipment object
252
270
  email:
253
271
  - mamhoff@gmail.com
@@ -326,14 +344,31 @@ files:
326
344
  - lib/friendly_shipping/services/ups/timing_options.rb
327
345
  - lib/friendly_shipping/services/ups_freight.rb
328
346
  - lib/friendly_shipping/services/ups_freight/generate_commodity_information.rb
347
+ - lib/friendly_shipping/services/ups_freight/generate_delivery_options_hash.rb
348
+ - lib/friendly_shipping/services/ups_freight/generate_document_options_hash.rb
349
+ - lib/friendly_shipping/services/ups_freight/generate_email_options_hash.rb
329
350
  - lib/friendly_shipping/services/ups_freight/generate_freight_rate_request_hash.rb
351
+ - lib/friendly_shipping/services/ups_freight/generate_freight_ship_request_hash.rb
330
352
  - lib/friendly_shipping/services/ups_freight/generate_location_hash.rb
331
- - lib/friendly_shipping/services/ups_freight/generate_ups_security_hash.rb
353
+ - lib/friendly_shipping/services/ups_freight/generate_pickup_options_hash.rb
354
+ - lib/friendly_shipping/services/ups_freight/generate_pickup_request_hash.rb
355
+ - lib/friendly_shipping/services/ups_freight/label_delivery_options.rb
356
+ - lib/friendly_shipping/services/ups_freight/label_document_options.rb
357
+ - lib/friendly_shipping/services/ups_freight/label_email_options.rb
358
+ - lib/friendly_shipping/services/ups_freight/label_item_options.rb
359
+ - lib/friendly_shipping/services/ups_freight/label_options.rb
360
+ - lib/friendly_shipping/services/ups_freight/label_package_options.rb
361
+ - lib/friendly_shipping/services/ups_freight/label_pickup_options.rb
362
+ - lib/friendly_shipping/services/ups_freight/parse_freight_label_response.rb
332
363
  - lib/friendly_shipping/services/ups_freight/parse_freight_rate_response.rb
333
- - lib/friendly_shipping/services/ups_freight/parse_json_response.rb
364
+ - lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
365
+ - lib/friendly_shipping/services/ups_freight/pickup_request_options.rb
334
366
  - lib/friendly_shipping/services/ups_freight/rates_item_options.rb
335
367
  - lib/friendly_shipping/services/ups_freight/rates_options.rb
336
368
  - lib/friendly_shipping/services/ups_freight/rates_package_options.rb
369
+ - lib/friendly_shipping/services/ups_freight/restful_api_error_handler.rb
370
+ - lib/friendly_shipping/services/ups_freight/shipment_document.rb
371
+ - lib/friendly_shipping/services/ups_freight/shipment_information.rb
337
372
  - lib/friendly_shipping/services/ups_freight/shipping_methods.rb
338
373
  - lib/friendly_shipping/services/usps.rb
339
374
  - lib/friendly_shipping/services/usps/choose_package_rate.rb
@@ -376,7 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
376
411
  - !ruby/object:Gem::Version
377
412
  version: '0'
378
413
  requirements: []
379
- rubygems_version: 3.0.6
414
+ rubygems_version: 3.0.3
380
415
  signing_key:
381
416
  specification_version: 4
382
417
  summary: An integration layer for shipping services
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module FriendlyShipping
4
- module Services
5
- class UpsFreight
6
- class GenerateUpsSecurityHash
7
- def self.call(login:, password:, key:)
8
- {
9
- UPSSecurity: {
10
- UsernameToken: {
11
- Username: login,
12
- Password: password
13
- },
14
- ServiceAccessToken: {
15
- AccessLicenseNumber: key
16
- }
17
- }
18
- }
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module FriendlyShipping
4
- module Services
5
- class UpsFreight
6
- class ParseJSONResponse
7
- extend Dry::Monads::Result::Mixin
8
-
9
- class << self
10
- def call(response_body, expected_root_tag)
11
- json = JSON.parse(response_body)
12
-
13
- if request_successful?(json, expected_root_tag)
14
- Success(json)
15
- else
16
- Failure(error_message(json))
17
- end
18
- rescue JSON::ParserError => e
19
- Failure(e)
20
- end
21
-
22
- private
23
-
24
- def request_successful?(json, expected_root_tag)
25
- json[expected_root_tag].present?
26
- end
27
-
28
- def error_message(json)
29
- detailed_error = json.dig('Fault', 'detail', 'Errors', 'ErrorDetail', 'PrimaryErrorCode')
30
- status = detailed_error['Code']
31
- desc = detailed_error['Description']
32
- [status, desc].compact.join(": ").presence || 'UPS could not process the request.'
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end