patch_ruby 1.23.0 → 1.24.2
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/CHANGELOG.md +15 -0
- data/Gemfile.lock +1 -1
- data/README.md +11 -11
- data/lib/patch_ruby/api/estimates_api.rb +357 -7
- data/lib/patch_ruby/api/orders_api.rb +36 -36
- data/lib/patch_ruby/api/projects_api.rb +2 -2
- data/lib/patch_ruby/api_client.rb +1 -1
- data/lib/patch_ruby/models/create_air_shipping_estimate_request.rb +374 -0
- data/lib/patch_ruby/models/{v1_orders_issued_to.rb → create_ecommerce_estimate_request.rb} +154 -20
- data/lib/patch_ruby/models/create_order_request.rb +3 -4
- data/lib/patch_ruby/models/create_rail_shipping_estimate_request.rb +404 -0
- data/lib/patch_ruby/models/create_road_shipping_estimate_request.rb +507 -0
- data/lib/patch_ruby/models/create_sea_shipping_estimate_request.rb +461 -0
- data/lib/patch_ruby/models/order.rb +7 -3
- data/lib/patch_ruby/models/{issued_to.rb → order_issued_to.rb} +7 -7
- data/lib/patch_ruby/models/place_order_request.rb +1 -2
- data/lib/patch_ruby/models/project.rb +1 -1
- data/lib/patch_ruby/version.rb +1 -1
- data/lib/patch_ruby.rb +6 -2
- data/spec/integration/estimates_spec.rb +165 -1
- data/spec/integration/orders_spec.rb +3 -3
- data/spec/integration/projects_spec.rb +2 -2
- data/spec/models/create_order_request_spec.rb +1 -1
- metadata +31 -27
@@ -90,7 +90,6 @@ RSpec.describe 'Estimates Integration' do
|
|
90
90
|
expect(create_estimate_response.data.mass_g).to be >= 10_000
|
91
91
|
end
|
92
92
|
|
93
|
-
|
94
93
|
it 'supports creating bitcoin estimates with partial information' do
|
95
94
|
bitcoin_estimate = Patch::Estimate.create_bitcoin_estimate()
|
96
95
|
|
@@ -171,4 +170,169 @@ RSpec.describe 'Estimates Integration' do
|
|
171
170
|
expect(create_estimate_response.data.mass_g).to be >= 100_000
|
172
171
|
expect(create_estimate_response.data.id).not_to be_nil
|
173
172
|
end
|
173
|
+
|
174
|
+
it 'supports creating ecommerce estimates' do
|
175
|
+
distance_m = 100_000_000
|
176
|
+
package_mass_g = 10_000
|
177
|
+
create_estimate_response = Patch::Estimate.create_ecommerce_estimate(
|
178
|
+
distance_m: distance_m,
|
179
|
+
package_mass_g: package_mass_g,
|
180
|
+
transportation_method: 'rail',
|
181
|
+
create_order: false
|
182
|
+
)
|
183
|
+
|
184
|
+
expect(create_estimate_response.data.type).to eq 'ecommerce'
|
185
|
+
expect(create_estimate_response.data.mass_g).to be >= 10_000
|
186
|
+
end
|
187
|
+
|
188
|
+
context "when creating an air shipping estimate" do
|
189
|
+
it "supports creating an estimate using airports" do
|
190
|
+
air_shipping_estimate = Patch::Estimate.create_air_shipping_estimate(
|
191
|
+
aircraft_type: "cargo",
|
192
|
+
create_order: false,
|
193
|
+
destination_airport: "JFK",
|
194
|
+
freight_mass_g: 31_300,
|
195
|
+
origin_airport: "SFO"
|
196
|
+
)
|
197
|
+
expect(air_shipping_estimate.data.type).to eq('shipping_air')
|
198
|
+
expect(air_shipping_estimate.data.mass_g).to be > 0
|
199
|
+
end
|
200
|
+
|
201
|
+
it "supports creating an estimate with an order" do
|
202
|
+
air_shipping_estimate = Patch::Estimate.create_air_shipping_estimate(
|
203
|
+
aircraft_type: "cargo",
|
204
|
+
create_order: true,
|
205
|
+
destination_airport: "JFK",
|
206
|
+
freight_mass_g: 19_140,
|
207
|
+
origin_airport: "SFO"
|
208
|
+
)
|
209
|
+
expect(air_shipping_estimate.data.type).to eq('shipping_air')
|
210
|
+
expect(air_shipping_estimate.data.mass_g).to be > 0
|
211
|
+
expect(air_shipping_estimate.data.order.amount).to be > 0
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
context "when creating a rail shipping estimate" do
|
216
|
+
it "supports creating an estimate using locodes" do
|
217
|
+
rail_shipping_estimate = Patch::Estimate.create_rail_shipping_estimate(
|
218
|
+
create_order: false,
|
219
|
+
destination_locode: "USSEA",
|
220
|
+
emissions_scope: "wtw",
|
221
|
+
freight_mass_g: 419_060,
|
222
|
+
fuel_type: "diesel",
|
223
|
+
origin_locode: "USSD2"
|
224
|
+
)
|
225
|
+
expect(rail_shipping_estimate.data.type).to eq('shipping_rail')
|
226
|
+
expect(rail_shipping_estimate.data.mass_g).to be > 0
|
227
|
+
end
|
228
|
+
|
229
|
+
it "supports creating an estimate using postal codes" do
|
230
|
+
rail_shipping_estimate = Patch::Estimate.create_rail_shipping_estimate(
|
231
|
+
create_order: false,
|
232
|
+
destination_country_code: "US",
|
233
|
+
destination_postal_code: "97209",
|
234
|
+
emissions_scope: "wtw",
|
235
|
+
freight_mass_g: 226_000,
|
236
|
+
fuel_type: "diesel",
|
237
|
+
origin_country_code: "US",
|
238
|
+
origin_postal_code: "90210"
|
239
|
+
)
|
240
|
+
expect(rail_shipping_estimate.data.type).to eq('shipping_rail')
|
241
|
+
expect(rail_shipping_estimate.data.mass_g).to be > 0
|
242
|
+
end
|
243
|
+
|
244
|
+
it "supports creating an estimate with an order" do
|
245
|
+
rail_shipping_estimate = Patch::Estimate.create_rail_shipping_estimate(
|
246
|
+
create_order: true,
|
247
|
+
destination_locode: "USSEA",
|
248
|
+
freight_mass_g: 359_000,
|
249
|
+
origin_locode: "USSD2"
|
250
|
+
)
|
251
|
+
expect(rail_shipping_estimate.data.type).to eq('shipping_rail')
|
252
|
+
expect(rail_shipping_estimate.data.mass_g).to be > 0
|
253
|
+
expect(rail_shipping_estimate.data.order.amount).to be > 0
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
context "when creating a road shipping estimate" do
|
258
|
+
it "supports creating an estimate using locodes" do
|
259
|
+
road_shipping_estimate = Patch::Estimate.create_road_shipping_estimate(
|
260
|
+
create_order: false,
|
261
|
+
container_size_code: "20GP",
|
262
|
+
destination_locode: "USSEA",
|
263
|
+
emissions_scope: "wtw",
|
264
|
+
freight_mass_g: 124_870,
|
265
|
+
origin_locode: "USSD2"
|
266
|
+
)
|
267
|
+
expect(road_shipping_estimate.data.type).to eq('shipping_road')
|
268
|
+
expect(road_shipping_estimate.data.mass_g).to be > 0
|
269
|
+
end
|
270
|
+
|
271
|
+
it "supports creating an estimate using postal codes" do
|
272
|
+
road_shipping_estimate = Patch::Estimate.create_road_shipping_estimate(
|
273
|
+
create_order: false,
|
274
|
+
destination_country_code: "US",
|
275
|
+
destination_postal_code: "97209",
|
276
|
+
emissions_scope: "wtw",
|
277
|
+
freight_mass_g: 226_000,
|
278
|
+
origin_country_code: "US",
|
279
|
+
origin_postal_code: "90210"
|
280
|
+
)
|
281
|
+
expect(road_shipping_estimate.data.type).to eq('shipping_road')
|
282
|
+
expect(road_shipping_estimate.data.mass_g).to be > 0
|
283
|
+
end
|
284
|
+
|
285
|
+
it "supports creating an estimate with an order" do
|
286
|
+
road_shipping_estimate = Patch::Estimate.create_road_shipping_estimate(
|
287
|
+
create_order: true,
|
288
|
+
destination_locode: "USSEA",
|
289
|
+
freight_mass_g: 359_000,
|
290
|
+
origin_locode: "USSD2"
|
291
|
+
)
|
292
|
+
expect(road_shipping_estimate.data.type).to eq('shipping_road')
|
293
|
+
expect(road_shipping_estimate.data.mass_g).to be > 0
|
294
|
+
expect(road_shipping_estimate.data.order.amount).to be > 0
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
context "when creating a sea shipping estimate" do
|
299
|
+
it "supports creating an estimate using locodes" do
|
300
|
+
sea_shipping_estimate = Patch::Estimate.create_sea_shipping_estimate(
|
301
|
+
create_order: false,
|
302
|
+
container_size_code: "20GP",
|
303
|
+
destination_locode: "HKHKG",
|
304
|
+
emissions_scope: "wtw",
|
305
|
+
freight_mass_g: 124_870,
|
306
|
+
origin_locode: "FRMRS"
|
307
|
+
)
|
308
|
+
expect(sea_shipping_estimate.data.type).to eq('shipping_sea')
|
309
|
+
expect(sea_shipping_estimate.data.mass_g).to be > 0
|
310
|
+
end
|
311
|
+
|
312
|
+
it "supports creating an estimate using postal codes" do
|
313
|
+
sea_shipping_estimate = Patch::Estimate.create_sea_shipping_estimate(
|
314
|
+
create_order: false,
|
315
|
+
destination_country_code: "US",
|
316
|
+
destination_postal_code: "97209",
|
317
|
+
emissions_scope: "wtw",
|
318
|
+
freight_mass_g: 226_000,
|
319
|
+
origin_country_code: "US",
|
320
|
+
origin_postal_code: "90210"
|
321
|
+
)
|
322
|
+
expect(sea_shipping_estimate.data.type).to eq('shipping_sea')
|
323
|
+
expect(sea_shipping_estimate.data.mass_g).to be > 0
|
324
|
+
end
|
325
|
+
|
326
|
+
it "supports creating an estimate with an order" do
|
327
|
+
sea_shipping_estimate = Patch::Estimate.create_sea_shipping_estimate(
|
328
|
+
create_order: true,
|
329
|
+
destination_locode: "USSEA",
|
330
|
+
freight_mass_g: 359_000,
|
331
|
+
origin_locode: "USSD2"
|
332
|
+
)
|
333
|
+
expect(sea_shipping_estimate.data.type).to eq('shipping_sea')
|
334
|
+
expect(sea_shipping_estimate.data.mass_g).to be > 0
|
335
|
+
expect(sea_shipping_estimate.data.order.amount).to be > 0
|
336
|
+
end
|
337
|
+
end
|
174
338
|
end
|
@@ -47,7 +47,7 @@ RSpec.describe 'Orders Integration' do
|
|
47
47
|
Constants::BIOMASS_TEST_PROJECT_ID
|
48
48
|
)
|
49
49
|
|
50
|
-
issued_to = {email: 'envimpact@companyb.com', name: 'Company B'}
|
50
|
+
issued_to = { email: 'envimpact@companyb.com', name: 'Company B' }
|
51
51
|
total_price_cents_usd = 50_00
|
52
52
|
|
53
53
|
create_order_response = Patch::Order.create_order(
|
@@ -135,8 +135,8 @@ RSpec.describe 'Orders Integration' do
|
|
135
135
|
create_estimate_to_place_response = Patch::Estimate.create_mass_estimate(mass_g: 100, create_order: true)
|
136
136
|
order_to_place_id = create_estimate_to_place_response.data.order.id
|
137
137
|
|
138
|
-
issued_to = {email: 'envimpact@companya.com', name: 'Company A'}
|
139
|
-
place_order_response = Patch::Order.place_order(order_to_place_id,
|
138
|
+
issued_to = { email: 'envimpact@companya.com', name: 'Company A' }
|
139
|
+
place_order_response = Patch::Order.place_order(order_to_place_id, issued_to: issued_to)
|
140
140
|
expect(place_order_response.data.state).to eq 'placed'
|
141
141
|
expect(place_order_response.data.issued_to.email).to eq(issued_to[:email])
|
142
142
|
expect(place_order_response.data.issued_to.name).to eq(issued_to[:name])
|
@@ -76,10 +76,10 @@ RSpec.describe 'Projects Integration' do
|
|
76
76
|
it 'retrieves projects in the requested language' do
|
77
77
|
projects_response = Patch::Project.retrieve_projects(accept_language: 'fr')
|
78
78
|
|
79
|
-
expect(projects_response.data.first.name).to include '
|
79
|
+
expect(projects_response.data.first.name).to include 'Démo' # French
|
80
80
|
|
81
81
|
project_id = projects_response.data.first.id
|
82
82
|
project_response = Patch::Project.retrieve_project(project_id, accept_language: 'fr')
|
83
|
-
expect(project_response.data.name).to include '
|
83
|
+
expect(project_response.data.name).to include 'Démo' # Frenc
|
84
84
|
end
|
85
85
|
end
|
@@ -31,7 +31,7 @@ describe 'CreateOrderRequest' do
|
|
31
31
|
let(:instance) { @instance }
|
32
32
|
let(:instance_hash) { { project_id: @instance.project_id, mass_g: @instance.mass_g, total_price_cents_usd: @instance.total_price_cents_usd, metadata: @instance.metadata } }
|
33
33
|
let(:nullable_properties) do
|
34
|
-
Set.new(%i[mass_g total_price_cents_usd project_id metadata state vintage_year total_price currency amount unit
|
34
|
+
Set.new(%i[mass_g total_price_cents_usd project_id metadata state vintage_year total_price currency amount unit])
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: patch_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.24.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patch Technology
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -101,12 +101,17 @@ files:
|
|
101
101
|
- lib/patch_ruby/api_error.rb
|
102
102
|
- lib/patch_ruby/configuration.rb
|
103
103
|
- lib/patch_ruby/models/allocation.rb
|
104
|
+
- lib/patch_ruby/models/create_air_shipping_estimate_request.rb
|
104
105
|
- lib/patch_ruby/models/create_bitcoin_estimate_request.rb
|
106
|
+
- lib/patch_ruby/models/create_ecommerce_estimate_request.rb
|
105
107
|
- lib/patch_ruby/models/create_ethereum_estimate_request.rb
|
106
108
|
- lib/patch_ruby/models/create_flight_estimate_request.rb
|
107
109
|
- lib/patch_ruby/models/create_hotel_estimate_request.rb
|
108
110
|
- lib/patch_ruby/models/create_mass_estimate_request.rb
|
109
111
|
- lib/patch_ruby/models/create_order_request.rb
|
112
|
+
- lib/patch_ruby/models/create_rail_shipping_estimate_request.rb
|
113
|
+
- lib/patch_ruby/models/create_road_shipping_estimate_request.rb
|
114
|
+
- lib/patch_ruby/models/create_sea_shipping_estimate_request.rb
|
110
115
|
- lib/patch_ruby/models/create_shipping_estimate_request.rb
|
111
116
|
- lib/patch_ruby/models/create_success_response.rb
|
112
117
|
- lib/patch_ruby/models/create_vehicle_estimate_request.rb
|
@@ -116,11 +121,11 @@ files:
|
|
116
121
|
- lib/patch_ruby/models/estimate_response.rb
|
117
122
|
- lib/patch_ruby/models/highlight.rb
|
118
123
|
- lib/patch_ruby/models/inventory.rb
|
119
|
-
- lib/patch_ruby/models/issued_to.rb
|
120
124
|
- lib/patch_ruby/models/meta_index_object.rb
|
121
125
|
- lib/patch_ruby/models/order.rb
|
122
126
|
- lib/patch_ruby/models/order_inventory.rb
|
123
127
|
- lib/patch_ruby/models/order_inventory_project.rb
|
128
|
+
- lib/patch_ruby/models/order_issued_to.rb
|
124
129
|
- lib/patch_ruby/models/order_list_response.rb
|
125
130
|
- lib/patch_ruby/models/order_response.rb
|
126
131
|
- lib/patch_ruby/models/parent_technology_type.rb
|
@@ -133,7 +138,6 @@ files:
|
|
133
138
|
- lib/patch_ruby/models/standard.rb
|
134
139
|
- lib/patch_ruby/models/technology_type.rb
|
135
140
|
- lib/patch_ruby/models/technology_type_list_response.rb
|
136
|
-
- lib/patch_ruby/models/v1_orders_issued_to.rb
|
137
141
|
- lib/patch_ruby/version.rb
|
138
142
|
- patch_ruby.gemspec
|
139
143
|
- spec/api/estimates_api_spec.rb
|
@@ -205,48 +209,48 @@ signing_key:
|
|
205
209
|
specification_version: 4
|
206
210
|
summary: Ruby wrapper for the Patch API
|
207
211
|
test_files:
|
208
|
-
- spec/api/technology_types_api_spec.rb
|
209
|
-
- spec/api/estimates_api_spec.rb
|
210
212
|
- spec/api/projects_api_spec.rb
|
211
213
|
- spec/api/orders_api_spec.rb
|
214
|
+
- spec/api/technology_types_api_spec.rb
|
215
|
+
- spec/api/estimates_api_spec.rb
|
212
216
|
- spec/api_client_spec.rb
|
213
217
|
- spec/configuration_spec.rb
|
214
218
|
- spec/constants.rb
|
215
|
-
- spec/factories/estimates.rb
|
216
|
-
- spec/factories/project_responses.rb
|
217
|
-
- spec/factories/estimate_responses.rb
|
218
|
-
- spec/factories/meta_index_objects.rb
|
219
|
-
- spec/factories/order_responses.rb
|
220
|
-
- spec/factories/project_list_responses.rb
|
221
|
-
- spec/factories/error_responses.rb
|
222
|
-
- spec/factories/create_mass_estimate_requests.rb
|
223
219
|
- spec/factories/parent_technology_type.rb
|
224
|
-
- spec/factories/orders.rb
|
225
220
|
- spec/factories/sdgs.rb
|
221
|
+
- spec/factories/project_list_responses.rb
|
222
|
+
- spec/factories/estimate_responses.rb
|
223
|
+
- spec/factories/orders.rb
|
224
|
+
- spec/factories/meta_index_objects.rb
|
226
225
|
- spec/factories/create_order_requests.rb
|
226
|
+
- spec/factories/order_responses.rb
|
227
|
+
- spec/factories/project_responses.rb
|
227
228
|
- spec/factories/allocations.rb
|
228
|
-
- spec/factories/
|
229
|
+
- spec/factories/estimates.rb
|
229
230
|
- spec/factories/projects.rb
|
230
231
|
- spec/factories/estimate_list_responses.rb
|
231
232
|
- spec/factories/order_list_responses.rb
|
232
|
-
- spec/
|
233
|
+
- spec/factories/error_responses.rb
|
234
|
+
- spec/factories/technology_type.rb
|
235
|
+
- spec/factories/create_mass_estimate_requests.rb
|
233
236
|
- spec/integration/projects/technology_types_spec.rb
|
234
237
|
- spec/integration/orders_spec.rb
|
235
238
|
- spec/integration/estimates_spec.rb
|
239
|
+
- spec/integration/projects_spec.rb
|
240
|
+
- spec/models/allocation_spec.rb
|
241
|
+
- spec/models/project_list_response_spec.rb
|
236
242
|
- spec/models/meta_index_object_spec.rb
|
237
|
-
- spec/models/estimate_spec.rb
|
238
|
-
- spec/models/estimate_list_response_spec.rb
|
239
243
|
- spec/models/estimate_response_spec.rb
|
240
|
-
- spec/models/
|
241
|
-
- spec/models/create_order_request_spec.rb
|
242
|
-
- spec/models/project_spec.rb
|
243
|
-
- spec/models/allocation_spec.rb
|
244
|
-
- spec/models/order_list_response_spec.rb
|
245
|
-
- spec/models/error_response_spec.rb
|
246
|
-
- spec/models/project_response_spec.rb
|
247
|
-
- spec/models/order_spec.rb
|
244
|
+
- spec/models/estimate_list_response_spec.rb
|
248
245
|
- spec/models/create_mass_estimate_request_spec.rb
|
246
|
+
- spec/models/project_response_spec.rb
|
247
|
+
- spec/models/error_response_spec.rb
|
248
|
+
- spec/models/estimate_spec.rb
|
249
|
+
- spec/models/order_list_response_spec.rb
|
249
250
|
- spec/models/order_response_spec.rb
|
251
|
+
- spec/models/project_spec.rb
|
252
|
+
- spec/models/order_spec.rb
|
253
|
+
- spec/models/create_order_request_spec.rb
|
250
254
|
- spec/patch_ruby_spec.rb
|
251
255
|
- spec/spec_helper.rb
|
252
256
|
- spec/support/shared/generated_classes.rb
|