patch_ruby 2.0.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,10 @@ module Patch
17
17
  class UpdateOrderLineItemRequest
18
18
  attr_accessor :vintage_year
19
19
 
20
+ attr_accessor :vintage_start_year
21
+
22
+ attr_accessor :vintage_end_year
23
+
20
24
  attr_accessor :price
21
25
 
22
26
  attr_accessor :currency
@@ -51,6 +55,8 @@ module Patch
51
55
  def self.attribute_map
52
56
  {
53
57
  :'vintage_year' => :'vintage_year',
58
+ :'vintage_start_year' => :'vintage_start_year',
59
+ :'vintage_end_year' => :'vintage_end_year',
54
60
  :'price' => :'price',
55
61
  :'currency' => :'currency',
56
62
  :'amount' => :'amount',
@@ -67,6 +73,8 @@ module Patch
67
73
  def self.openapi_types
68
74
  {
69
75
  :'vintage_year' => :'Integer',
76
+ :'vintage_start_year' => :'Integer',
77
+ :'vintage_end_year' => :'Integer',
70
78
  :'price' => :'Integer',
71
79
  :'currency' => :'String',
72
80
  :'amount' => :'Integer',
@@ -78,6 +86,8 @@ module Patch
78
86
  def self.openapi_nullable
79
87
  Set.new([
80
88
  :'vintage_year',
89
+ :'vintage_start_year',
90
+ :'vintage_end_year',
81
91
  :'price',
82
92
  :'currency',
83
93
  :'amount',
@@ -116,6 +126,14 @@ module Patch
116
126
  self.vintage_year = attributes[:'vintage_year']
117
127
  end
118
128
 
129
+ if attributes.key?(:'vintage_start_year')
130
+ self.vintage_start_year = attributes[:'vintage_start_year']
131
+ end
132
+
133
+ if attributes.key?(:'vintage_end_year')
134
+ self.vintage_end_year = attributes[:'vintage_end_year']
135
+ end
136
+
119
137
  if attributes.key?(:'price')
120
138
  self.price = attributes[:'price']
121
139
  end
@@ -145,12 +163,28 @@ module Patch
145
163
  invalid_properties.push('invalid value for "vintage_year", must be greater than or equal to 1900.')
146
164
  end
147
165
 
166
+ if !@vintage_start_year.nil? && @vintage_start_year > 2100
167
+ invalid_properties.push('invalid value for "vintage_start_year", must be smaller than or equal to 2100.')
168
+ end
169
+
170
+ if !@vintage_start_year.nil? && @vintage_start_year < 1900
171
+ invalid_properties.push('invalid value for "vintage_start_year", must be greater than or equal to 1900.')
172
+ end
173
+
174
+ if !@vintage_end_year.nil? && @vintage_end_year > 2100
175
+ invalid_properties.push('invalid value for "vintage_end_year", must be smaller than or equal to 2100.')
176
+ end
177
+
178
+ if !@vintage_end_year.nil? && @vintage_end_year < 1900
179
+ invalid_properties.push('invalid value for "vintage_end_year", must be greater than or equal to 1900.')
180
+ end
181
+
148
182
  if !@price.nil? && @price < 2
149
183
  invalid_properties.push('invalid value for "price", must be greater than or equal to 2.')
150
184
  end
151
185
 
152
- if !@amount.nil? && @amount > 100000000000
153
- invalid_properties.push('invalid value for "amount", must be smaller than or equal to 100000000000.')
186
+ if !@amount.nil? && @amount > 100000000000000
187
+ invalid_properties.push('invalid value for "amount", must be smaller than or equal to 100000000000000.')
154
188
  end
155
189
 
156
190
  if !@amount.nil? && @amount < 0
@@ -165,8 +199,12 @@ module Patch
165
199
  def valid?
166
200
  return false if !@vintage_year.nil? && @vintage_year > 2100
167
201
  return false if !@vintage_year.nil? && @vintage_year < 1900
202
+ return false if !@vintage_start_year.nil? && @vintage_start_year > 2100
203
+ return false if !@vintage_start_year.nil? && @vintage_start_year < 1900
204
+ return false if !@vintage_end_year.nil? && @vintage_end_year > 2100
205
+ return false if !@vintage_end_year.nil? && @vintage_end_year < 1900
168
206
  return false if !@price.nil? && @price < 2
169
- return false if !@amount.nil? && @amount > 100000000000
207
+ return false if !@amount.nil? && @amount > 100000000000000
170
208
  return false if !@amount.nil? && @amount < 0
171
209
  unit_validator = EnumAttributeValidator.new('String', ["g", "Wh"])
172
210
  return false unless unit_validator.valid?(@unit)
@@ -187,6 +225,34 @@ module Patch
187
225
  @vintage_year = vintage_year
188
226
  end
189
227
 
228
+ # Custom attribute writer method with validation
229
+ # @param [Object] vintage_start_year Value to be assigned
230
+ def vintage_start_year=(vintage_start_year)
231
+ if !vintage_start_year.nil? && vintage_start_year > 2100
232
+ fail ArgumentError, 'invalid value for "vintage_start_year", must be smaller than or equal to 2100.'
233
+ end
234
+
235
+ if !vintage_start_year.nil? && vintage_start_year < 1900
236
+ fail ArgumentError, 'invalid value for "vintage_start_year", must be greater than or equal to 1900.'
237
+ end
238
+
239
+ @vintage_start_year = vintage_start_year
240
+ end
241
+
242
+ # Custom attribute writer method with validation
243
+ # @param [Object] vintage_end_year Value to be assigned
244
+ def vintage_end_year=(vintage_end_year)
245
+ if !vintage_end_year.nil? && vintage_end_year > 2100
246
+ fail ArgumentError, 'invalid value for "vintage_end_year", must be smaller than or equal to 2100.'
247
+ end
248
+
249
+ if !vintage_end_year.nil? && vintage_end_year < 1900
250
+ fail ArgumentError, 'invalid value for "vintage_end_year", must be greater than or equal to 1900.'
251
+ end
252
+
253
+ @vintage_end_year = vintage_end_year
254
+ end
255
+
190
256
  # Custom attribute writer method with validation
191
257
  # @param [Object] price Value to be assigned
192
258
  def price=(price)
@@ -200,8 +266,8 @@ module Patch
200
266
  # Custom attribute writer method with validation
201
267
  # @param [Object] amount Value to be assigned
202
268
  def amount=(amount)
203
- if !amount.nil? && amount > 100000000000
204
- fail ArgumentError, 'invalid value for "amount", must be smaller than or equal to 100000000000.'
269
+ if !amount.nil? && amount > 100000000000000
270
+ fail ArgumentError, 'invalid value for "amount", must be smaller than or equal to 100000000000000.'
205
271
  end
206
272
 
207
273
  if !amount.nil? && amount < 0
@@ -227,6 +293,8 @@ module Patch
227
293
  return true if self.equal?(o)
228
294
  self.class == o.class &&
229
295
  vintage_year == o.vintage_year &&
296
+ vintage_start_year == o.vintage_start_year &&
297
+ vintage_end_year == o.vintage_end_year &&
230
298
  price == o.price &&
231
299
  currency == o.currency &&
232
300
  amount == o.amount &&
@@ -242,7 +310,7 @@ module Patch
242
310
  # Calculates hash code according to all attributes.
243
311
  # @return [Integer] Hash code
244
312
  def hash
245
- [vintage_year, price, currency, amount, unit].hash
313
+ [vintage_year, vintage_start_year, vintage_end_year, price, currency, amount, unit].hash
246
314
  end
247
315
 
248
316
  # Builds the object from hash
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.3.1
11
11
  =end
12
12
 
13
13
  module Patch
14
- VERSION = '2.0.0'
14
+ VERSION = '2.1.1'
15
15
  end
data/lib/patch_ruby.rb CHANGED
@@ -34,6 +34,7 @@ require 'patch_ruby/models/create_success_response'
34
34
  require 'patch_ruby/models/create_vehicle_estimate_request'
35
35
  require 'patch_ruby/models/delete_order_line_item_response'
36
36
  require 'patch_ruby/models/delete_order_response'
37
+ require 'patch_ruby/models/disclaimer'
37
38
  require 'patch_ruby/models/error_response'
38
39
  require 'patch_ruby/models/estimate'
39
40
  require 'patch_ruby/models/estimate_list_response'
@@ -86,7 +86,7 @@ RSpec.describe 'Estimates Integration' do
86
86
  create_order: false
87
87
  )
88
88
 
89
- expect(create_estimate_response.data.type).to eq 'shipping'
89
+ expect(create_estimate_response.data.type).to eq 'ecommerce'
90
90
  expect(create_estimate_response.data.mass_g).to be >= 10_000
91
91
  end
92
92
 
@@ -134,6 +134,16 @@ RSpec.describe 'Orders Integration' do
134
134
  expect(create_order_response.data.unit).to eq("g")
135
135
  end
136
136
 
137
+ it 'supports create with a vintage start year and vintage end year' do
138
+ create_order_response =
139
+ Patch::Order.create_order(amount: 100, unit: "g", vintage_start_year: 2022, vintage_end_year: 2023)
140
+
141
+ expect(create_order_response.success).to eq true
142
+ expect(create_order_response.data.id).not_to be_nil
143
+ expect(create_order_response.data.amount).to eq(100)
144
+ expect(create_order_response.data.unit).to eq("g")
145
+ end
146
+
137
147
  it 'supports create with an amount and unit' do
138
148
  create_order_response =
139
149
  Patch::Order.create_order(amount: 100, unit: "g")
@@ -209,6 +219,32 @@ RSpec.describe 'Orders Integration' do
209
219
  expect(delete_line_item_response.success).to eq(true)
210
220
  expect(delete_line_item_response.data).to eq(line_item_id)
211
221
 
222
+ # Add line item via vintage_start_year and vintage_end_year
223
+ create_order_line_item_response = Patch::OrderLineItem
224
+ .create_order_line_item(order_id, { project_id: project_id, amount: 300000, unit: "g", vintage_start_year: 2023, vintage_end_year: 2025 })
225
+
226
+ expect(create_order_line_item_response.success).to eq(true)
227
+ expect(create_order_line_item_response.data.id).not_to be_nil
228
+ expect(create_order_line_item_response.data.amount).to eq(300000)
229
+ expect(create_order_line_item_response.data.vintage_start_year).to eq(2023)
230
+ expect(create_order_line_item_response.data.vintage_end_year).to eq(2025)
231
+ expect(create_order_line_item_response.data.price).to be >= 0
232
+
233
+ # Fetch order and check line item matches
234
+ retrieve_order_response = Patch::Order.retrieve_order(order_id)
235
+ expect(retrieve_order_response.data.id).to eq order_id
236
+ expect(retrieve_order_response.data.line_items.length).to eq(1)
237
+ expect(retrieve_order_response.data.line_items[0].id).to eq(line_item_id)
238
+ expect(retrieve_order_response.data.line_items[0].amount).to eq(300000)
239
+ expect(retrieve_order_response.data.line_items[0].vintage_start_year).to eq(2023)
240
+ expect(retrieve_order_response.data.line_items[0].vintage_end_year).to eq(2025)
241
+
242
+ # Delete line item
243
+ line_item_id = create_order_line_item_response.data.id
244
+ delete_line_item_response = Patch::OrderLineItem.delete_order_line_item(order_id, line_item_id)
245
+ expect(delete_line_item_response.success).to eq(true)
246
+ expect(delete_line_item_response.data).to eq(line_item_id)
247
+
212
248
  # Fetch order and see it has no line items
213
249
  retrieve_order_response = Patch::Order.retrieve_order(order_id)
214
250
  expect(retrieve_order_response.data.id).to eq order_id
@@ -65,19 +65,33 @@ RSpec.describe 'Projects Integration' do
65
65
  expect(inventory).to be_an_instance_of(Array)
66
66
  expect(inventory[0]).to be_an_instance_of(Patch::Inventory)
67
67
  expect(inventory[0].vintage_year).to be_an_instance_of(Integer)
68
+ expect(inventory[0].vintage_start_year).to be_an_instance_of(Integer)
69
+ expect(inventory[0].vintage_end_year).to be_an_instance_of(Integer)
68
70
  expect(inventory[0].amount_available).to be_an_instance_of(Integer)
69
71
  expect(inventory[0].price).to be_an_instance_of(Integer)
70
72
  expect(inventory[0].currency).to be_an_instance_of(String)
71
73
  expect(inventory[0].unit).to be_an_instance_of(String)
74
+
75
+ issuance_type = project.issuance_type
76
+ expect(issuance_type).to be_an_instance_of(String)
77
+
78
+ disclaimers = project.disclaimers
79
+ expect(disclaimers).to be_an_instance_of(Array)
80
+ expect(disclaimers[0]).to be_an_instance_of(Patch::Disclaimer)
81
+ expect(disclaimers[0].body).to be_an_instance_of(String)
82
+ expect(disclaimers[0].header).to be_an_instance_of(String)
83
+ expect(disclaimers[0].severity).to be_an_instance_of(String)
84
+ expect(disclaimers[0].link_text).to be_an_instance_of(String)
85
+ expect(disclaimers[0].link_destination).to be_an_instance_of(String)
72
86
  end
73
87
 
74
88
  it 'retrieves projects in the requested language' do
75
89
  projects_response = Patch::Project.retrieve_projects(accept_language: 'fr')
76
90
 
77
- expect(projects_response.data.first.name).to include 'Démo' # French
91
+ expect(projects_response.data.last.name).to include 'Démo' # French
78
92
 
79
- project_id = projects_response.data.first.id
93
+ project_id = projects_response.data.last.id
80
94
  project_response = Patch::Project.retrieve_project(project_id, accept_language: 'fr')
81
- expect(project_response.data.name).to include 'Démo' # Frenc
95
+ expect(project_response.data.name).to include 'Démo' # French
82
96
  end
83
97
  end
@@ -38,7 +38,7 @@ describe 'CreateOrderRequest' do
38
38
  metadata: @instance.metadata
39
39
  } }
40
40
  let(:nullable_properties) do
41
- Set.new(%i[project_id metadata state vintage_year total_price currency amount unit])
41
+ Set.new(%i[project_id metadata state vintage_year vintage_start_year vintage_end_year total_price currency amount unit])
42
42
  end
43
43
  end
44
44
 
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: 2.0.0
4
+ version: 2.1.1
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-10-13 00:00:00.000000000 Z
11
+ date: 2023-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -118,6 +118,7 @@ files:
118
118
  - lib/patch_ruby/models/create_vehicle_estimate_request.rb
119
119
  - lib/patch_ruby/models/delete_order_line_item_response.rb
120
120
  - lib/patch_ruby/models/delete_order_response.rb
121
+ - lib/patch_ruby/models/disclaimer.rb
121
122
  - lib/patch_ruby/models/error_response.rb
122
123
  - lib/patch_ruby/models/estimate.rb
123
124
  - lib/patch_ruby/models/estimate_list_response.rb
@@ -213,47 +214,47 @@ signing_key:
213
214
  specification_version: 4
214
215
  summary: Ruby wrapper for the Patch API
215
216
  test_files:
216
- - spec/api/technology_types_api_spec.rb
217
- - spec/api/order_line_items_api_spec.rb
218
- - spec/api/orders_api_spec.rb
219
217
  - spec/api/projects_api_spec.rb
220
218
  - spec/api/estimates_api_spec.rb
219
+ - spec/api/orders_api_spec.rb
220
+ - spec/api/order_line_items_api_spec.rb
221
+ - spec/api/technology_types_api_spec.rb
221
222
  - spec/api_client_spec.rb
222
223
  - spec/configuration_spec.rb
223
224
  - spec/constants.rb
224
- - spec/factories/parent_technology_type.rb
225
- - spec/factories/estimate_responses.rb
226
- - spec/factories/sdgs.rb
225
+ - spec/factories/meta_index_objects.rb
227
226
  - spec/factories/estimate_list_responses.rb
228
- - spec/factories/order_list_responses.rb
229
- - spec/factories/project_responses.rb
230
- - spec/factories/projects.rb
231
- - spec/factories/project_list_responses.rb
232
- - spec/factories/orders.rb
233
- - spec/factories/estimates.rb
234
- - spec/factories/create_order_requests.rb
235
227
  - spec/factories/create_mass_estimate_requests.rb
236
- - spec/factories/meta_index_objects.rb
228
+ - spec/factories/projects.rb
229
+ - spec/factories/order_list_responses.rb
237
230
  - spec/factories/technology_type.rb
231
+ - spec/factories/estimates.rb
238
232
  - spec/factories/error_responses.rb
233
+ - spec/factories/parent_technology_type.rb
234
+ - spec/factories/project_responses.rb
235
+ - spec/factories/create_order_requests.rb
236
+ - spec/factories/orders.rb
237
+ - spec/factories/sdgs.rb
239
238
  - spec/factories/order_responses.rb
240
- - spec/integration/orders_spec.rb
241
- - spec/integration/projects_spec.rb
239
+ - spec/factories/project_list_responses.rb
240
+ - spec/factories/estimate_responses.rb
242
241
  - spec/integration/projects/technology_types_spec.rb
243
242
  - spec/integration/estimates_spec.rb
243
+ - spec/integration/projects_spec.rb
244
+ - spec/integration/orders_spec.rb
244
245
  - spec/models/order_response_spec.rb
245
- - spec/models/order_list_response_spec.rb
246
- - spec/models/order_spec.rb
246
+ - spec/models/meta_index_object_spec.rb
247
+ - spec/models/project_spec.rb
248
+ - spec/models/create_order_request_spec.rb
249
+ - spec/models/project_response_spec.rb
247
250
  - spec/models/create_mass_estimate_request_spec.rb
248
- - spec/models/estimate_response_spec.rb
249
251
  - spec/models/project_list_response_spec.rb
252
+ - spec/models/order_spec.rb
250
253
  - spec/models/error_response_spec.rb
251
- - spec/models/meta_index_object_spec.rb
252
- - spec/models/project_response_spec.rb
253
- - spec/models/project_spec.rb
254
254
  - spec/models/estimate_spec.rb
255
+ - spec/models/order_list_response_spec.rb
255
256
  - spec/models/estimate_list_response_spec.rb
256
- - spec/models/create_order_request_spec.rb
257
+ - spec/models/estimate_response_spec.rb
257
258
  - spec/patch_ruby_spec.rb
258
259
  - spec/spec_helper.rb
259
260
  - spec/support/shared/generated_classes.rb