square.rb 20.1.0.20220616 → 21.0.0.20220720

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: 68c3c60d1b69c141d163be8e453c91bd76cca35f98228aeae4a41f7b61afe8a6
4
- data.tar.gz: 3df6c78f8e6e493967624fca0cd804c1547aa6ccfb2b57daaac05695a33df12d
3
+ metadata.gz: b8c49dc5dec3f51ebfdb70e1789d9ffd0c1826b9f953c7a1e0fa59b62dae9d4f
4
+ data.tar.gz: b49dd9dbf71cdb0c1371dc0f5fb9505a26aaffe5c1905a366a3e46ecae5ea7fe
5
5
  SHA512:
6
- metadata.gz: ab11afe945aa6630b158b07040290572d591b15e2d0829363dd334fc38f5197cc2d5eed47a36cf84e68061667d91b874486892da5acebb4f25420b8bec6e190b
7
- data.tar.gz: 3427cb9920daac7363c982754ab7a5c8ef1abf609786e9c8b2bb4a6a4f82da77a2b05e9d7758d71c86613ef8dc54536ea44b9c9f9eed44576d90272121327b67
6
+ metadata.gz: bf2fcb52842fd5fc4f4b0cce1196a0276b882ec2d27d9a1d1eb6c717c0130eca6c52c0fda1d176bf4cc7f78f64b018162a58e484aa548534f58bf5738cee0e8d
7
+ data.tar.gz: d2efdfc7be2f8afde9906e01bc3b6dac865fd092f0394ea5ebe3e427101752251100ff409e8a9fff7b5c7d7af5d52278ec641289b90a52a8c6aa70715ce6c39c
@@ -20,6 +20,13 @@ module Square
20
20
  end
21
21
  end
22
22
 
23
+ def validate_parameters_types(args)
24
+ args.each do |_name, type|
25
+ key, val = type.first
26
+ APIHelper.validate_types(key, val) unless key.nil?
27
+ end
28
+ end
29
+
23
30
  def execute_request(request, binary: false)
24
31
  @http_call_back&.on_before_request(request)
25
32
 
@@ -38,7 +45,7 @@ module Square
38
45
  end
39
46
 
40
47
  def get_user_agent
41
- user_agent = 'Square-Ruby-SDK/20.1.0.20220616 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}'
48
+ user_agent = 'Square-Ruby-SDK/21.0.0.20220720 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}'
42
49
  user_agent['{engine}'] = RUBY_ENGINE
43
50
  user_agent['{engine-version}'] = RUBY_ENGINE_VERSION
44
51
  user_agent['{os-info}'] = RUBY_PLATFORM
@@ -178,9 +178,9 @@ module Square
178
178
  end
179
179
 
180
180
  # Lists booking profiles for team members.
181
- # @param [Boolean] bookable_only Optional parameter: Indicates whether to
182
- # include only bookable team members in the returned result (`true`) or not
183
- # (`false`).
181
+ # @param [TrueClass|FalseClass] bookable_only Optional parameter: Indicates
182
+ # whether to include only bookable team members in the returned result
183
+ # (`true`) or not (`false`).
184
184
  # @param [Integer] limit Optional parameter: The maximum number of results
185
185
  # to return in a paged response.
186
186
  # @param [String] cursor Optional parameter: The pagination cursor from the
@@ -15,8 +15,9 @@ module Square
15
15
  # @param [String] customer_id Optional parameter: Limit results to cards
16
16
  # associated with the customer supplied. By default, all cards owned by the
17
17
  # merchant are returned.
18
- # @param [Boolean] include_disabled Optional parameter: Includes disabled
19
- # cards. By default, all enabled cards owned by the merchant are returned.
18
+ # @param [TrueClass|FalseClass] include_disabled Optional parameter:
19
+ # Includes disabled cards. By default, all enabled cards owned by the
20
+ # merchant are returned.
20
21
  # @param [String] reference_id Optional parameter: Limit results to cards
21
22
  # associated with the reference_id supplied.
22
23
  # @param [SortOrder] sort_order Optional parameter: Sorts the returned list
@@ -319,8 +319,8 @@ module Square
319
319
  # MODIFIER_LIST, PRICING_RULE, PRODUCT_SET, TIME_PERIOD, MEASUREMENT_UNIT,
320
320
  # SUBSCRIPTION_PLAN, ITEM_OPTION, CUSTOM_ATTRIBUTE_DEFINITION,
321
321
  # QUICK_AMOUNT_SETTINGS.
322
- # @param [Long] catalog_version Optional parameter: The specific version of
323
- # the catalog objects to be included in the response. This allows you to
322
+ # @param [Integer] catalog_version Optional parameter: The specific version
323
+ # of the catalog objects to be included in the response. This allows you to
324
324
  # retrieve historical versions of objects. The specified version value is
325
325
  # matched against the [CatalogObject]($m/CatalogObject)s' `version`
326
326
  # attribute. If not included, results will be from the current version of
@@ -448,26 +448,26 @@ module Square
448
448
  # any [CatalogTax]($m/CatalogTax) objects that apply to it.
449
449
  # @param [String] object_id Required parameter: The object ID of any type of
450
450
  # catalog objects to be retrieved.
451
- # @param [Boolean] include_related_objects Optional parameter: If `true`,
452
- # the response will include additional objects that are related to the
453
- # requested objects. Related objects are defined as any objects referenced
454
- # by ID by the results in the `objects` field of the response. These objects
455
- # are put in the `related_objects` field. Setting this to `true` is helpful
456
- # when the objects are needed for immediate display to a user. This process
457
- # only goes one level deep. Objects referenced by the related objects will
458
- # not be included. For example, if the `objects` field of the response
459
- # contains a CatalogItem, its associated CatalogCategory objects, CatalogTax
460
- # objects, CatalogImage objects and CatalogModifierLists will be returned in
461
- # the `related_objects` field of the response. If the `objects` field of the
462
- # response contains a CatalogItemVariation, its parent CatalogItem will be
463
- # returned in the `related_objects` field of the response. Default value:
464
- # `false`
465
- # @param [Long] catalog_version Optional parameter: Requests objects as of a
466
- # specific version of the catalog. This allows you to retrieve historical
467
- # versions of objects. The value to retrieve a specific version of an object
468
- # can be found in the version field of [CatalogObject]($m/CatalogObject)s.
469
- # If not included, results will be from the current version of the
470
- # catalog.
451
+ # @param [TrueClass|FalseClass] include_related_objects Optional parameter:
452
+ # If `true`, the response will include additional objects that are related
453
+ # to the requested objects. Related objects are defined as any objects
454
+ # referenced by ID by the results in the `objects` field of the response.
455
+ # These objects are put in the `related_objects` field. Setting this to
456
+ # `true` is helpful when the objects are needed for immediate display to a
457
+ # user. This process only goes one level deep. Objects referenced by the
458
+ # related objects will not be included. For example, if the `objects` field
459
+ # of the response contains a CatalogItem, its associated CatalogCategory
460
+ # objects, CatalogTax objects, CatalogImage objects and CatalogModifierLists
461
+ # will be returned in the `related_objects` field of the response. If the
462
+ # `objects` field of the response contains a CatalogItemVariation, its
463
+ # parent CatalogItem will be returned in the `related_objects` field of the
464
+ # response. Default value: `false`
465
+ # @param [Integer] catalog_version Optional parameter: Requests objects as
466
+ # of a specific version of the catalog. This allows you to retrieve
467
+ # historical versions of objects. The value to retrieve a specific version
468
+ # of an object can be found in the version field of
469
+ # [CatalogObject]($m/CatalogObject)s. If not included, results will be from
470
+ # the current version of the catalog.
471
471
  # @return [RetrieveCatalogObjectResponse Hash] response from the API call
472
472
  def retrieve_catalog_object(object_id:,
473
473
  include_related_objects: false,
@@ -323,12 +323,12 @@ module Square
323
323
  # more information, see
324
324
  # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
325
325
  # atterns/pagination).
326
- # @param [Boolean] with_definitions Optional parameter: Indicates whether to
327
- # return the [custom attribute definition]($m/CustomAttributeDefinition) in
328
- # the `definition` field of each custom attribute. Set this parameter to
329
- # `true` to get the name and description of each custom attribute,
330
- # information about the data type, or other definition details. The default
331
- # value is `false`.
326
+ # @param [TrueClass|FalseClass] with_definitions Optional parameter:
327
+ # Indicates whether to return the [custom attribute
328
+ # definition]($m/CustomAttributeDefinition) in the `definition` field of
329
+ # each custom attribute. Set this parameter to `true` to get the name and
330
+ # description of each custom attribute, information about the data type, or
331
+ # other definition details. The default value is `false`.
332
332
  # @return [ListCustomerCustomAttributesResponse Hash] response from the API call
333
333
  def list_customer_custom_attributes(customer_id:,
334
334
  limit: nil,
@@ -427,12 +427,12 @@ module Square
427
427
  # retrieve. This key must match the `key` of a custom attribute definition
428
428
  # in the Square seller account. If the requesting application is not the
429
429
  # definition owner, you must use the qualified key.
430
- # @param [Boolean] with_definition Optional parameter: Indicates whether to
431
- # return the [custom attribute definition]($m/CustomAttributeDefinition) in
432
- # the `definition` field of the custom attribute. Set this parameter to
433
- # `true` to get the name and description of the custom attribute,
434
- # information about the data type, or other definition details. The default
435
- # value is `false`.
430
+ # @param [TrueClass|FalseClass] with_definition Optional parameter:
431
+ # Indicates whether to return the [custom attribute
432
+ # definition]($m/CustomAttributeDefinition) in the `definition` field of the
433
+ # custom attribute. Set this parameter to `true` to get the name and
434
+ # description of the custom attribute, information about the data type, or
435
+ # other definition details. The default value is `false`.
436
436
  # @param [Integer] version Optional parameter: The current version of the
437
437
  # custom attribute, which is used for strongly consistent reads to guarantee
438
438
  # that you receive the most up-to-date data. When included in the request,
@@ -165,7 +165,7 @@ module Square
165
165
  # profiles, you must use the ID of the newly created profile.
166
166
  # @param [String] customer_id Required parameter: The ID of the customer to
167
167
  # delete.
168
- # @param [Long] version Optional parameter: The current version of the
168
+ # @param [Integer] version Optional parameter: The current version of the
169
169
  # customer profile. As a best practice, you should include this parameter
170
170
  # to enable [optimistic
171
171
  # concurrency](https://developer.squareup.com/docs/build-basics/common-api-p
@@ -244,8 +244,8 @@ module Square
244
244
  # - The `order_id` in the endpoint path, identifying the order to update.
245
245
  # - The latest `version` of the order to update.
246
246
  # - The [sparse
247
- # order](https://developer.squareup.com/docs/orders-api/manage-orders#sparse
248
- # -order-objects)
247
+ # order](https://developer.squareup.com/docs/orders-api/manage-orders/update
248
+ # -orders#sparse-order-objects)
249
249
  # containing only the fields to update and the version to which the update
250
250
  # is
251
251
  # being applied.
@@ -26,7 +26,7 @@ module Square
26
26
  # @param [String] location_id Optional parameter: Limit results to the
27
27
  # location supplied. By default, results are returned for the default (main)
28
28
  # location associated with the seller.
29
- # @param [Long] total Optional parameter: The exact amount in the
29
+ # @param [Integer] total Optional parameter: The exact amount in the
30
30
  # `total_money` for a payment.
31
31
  # @param [String] last_4 Optional parameter: The last four digits of a
32
32
  # payment card.
@@ -175,10 +175,10 @@ module Square
175
175
  # @param [String] batch_token Optional parameter: A pagination cursor to
176
176
  # retrieve the next set of results for your original query to the
177
177
  # endpoint.
178
- # @param [Boolean] include_partial Optional parameter: Indicates whether or
179
- # not to include partial payments in the response. Partial payments will
180
- # have the tenders collected so far, but the itemizations will be empty
181
- # until the payment is completed.
178
+ # @param [TrueClass|FalseClass] include_partial Optional parameter:
179
+ # Indicates whether or not to include partial payments in the response.
180
+ # Partial payments will have the tenders collected so far, but the
181
+ # itemizations will be empty until the payment is completed.
182
182
  # @return [List of V1Payment Hash] response from the API call
183
183
  def list_payments(location_id:,
184
184
  order: nil,
@@ -130,6 +130,12 @@ module Square
130
130
  raise TypeError, 'Server responded with invalid JSON.'
131
131
  end
132
132
 
133
+ # Parses JSON string.
134
+ # @param [object] The object to serialize.
135
+ def self.json_serialize(obj)
136
+ serializable_types.map { |x| obj.is_a? x }.any? ? obj.to_s : obj.to_json
137
+ end
138
+
133
139
  # Removes elements with empty values from a hash.
134
140
  # @param [Hash] The hash to clean.
135
141
  def self.clean_hash(hash)
@@ -199,9 +205,6 @@ module Square
199
205
  def self.form_encode(obj, instance_name, formatting: 'indexed')
200
206
  retval = {}
201
207
 
202
- serializable_types = [String, Numeric, TrueClass,
203
- FalseClass, Date, DateTime]
204
-
205
208
  # Create a form encoded hash for this object.
206
209
  if obj.nil?
207
210
  nil
@@ -210,7 +213,7 @@ module Square
210
213
  obj.each_with_index do |value, index|
211
214
  retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{index}]"))
212
215
  end
213
- elsif serializable_types.map { |x| obj[0].is_a? x }.any?
216
+ elsif APIHelper.serializable_types.map { |x| obj[0].is_a? x }.any?
214
217
  obj.each do |value|
215
218
  abc = if formatting == 'unindexed'
216
219
  APIHelper.form_encode(value, "#{instance_name}[]",
@@ -265,5 +268,174 @@ module Square
265
268
  end
266
269
  val
267
270
  end
271
+
272
+ # Deserialize the value against the template (group of types).
273
+ # @param [String] The value to be deserialized.
274
+ # @param [String] The parameter indicates the type-combination
275
+ # against which the value will be mapped (oneOf(Integer, String)).
276
+ def self.deserialize(template, value)
277
+ decoded = APIHelper.json_deserialize(value)
278
+ map_types(decoded, template)
279
+ end
280
+
281
+ # Validates and processes the value against the template(group of types).
282
+ # @param [String] The value to be mapped against the template.
283
+ # @param [String] The parameter indicates the group of types (oneOf(Integer, String)).
284
+ # @param [String] The parameter indicates the group (oneOf|anyOf).
285
+ def self.map_types(value, template, group_name: nil)
286
+ result_value = nil
287
+ matches = 0
288
+ types = []
289
+ group_name = template.partition('(').first if group_name.nil? && template.match?(/anyOf|oneOf/)
290
+
291
+ return if value.nil?
292
+
293
+ if template.end_with?('{}') || template.end_with?('[]')
294
+ types = template.split(group_name, 2).last.gsub(/\s+/, '').split
295
+ else
296
+ template = template.split(group_name, 2).last.delete_prefix('(').delete_suffix(')')
297
+ types = template.scan(/(anyOf|oneOf)[(]([^[)]]*)[)]/).flatten.combination(2).map { |a, b| "#{a}(#{b})" }
298
+ types.each { |t| template = template.gsub(", #{t}", '') }
299
+ types = template.gsub(/\s+/, '').split(',').push(*types)
300
+ end
301
+ types.each do |element|
302
+ if element.match?(/^(oneOf|anyOf)[(].*$/)
303
+ begin
304
+ result_value = map_types(value, element, matches)
305
+ matches += 1
306
+ rescue ValidationException
307
+ next
308
+ end
309
+ elsif element.end_with?('{}')
310
+ result_value, matches = map_hash_type(value, element, group_name, matches)
311
+ elsif element.end_with?('[]')
312
+ result_value, matches = map_array_type(value, element, group_name, matches)
313
+ else
314
+ begin
315
+ result_value, matches = map_type(value, element, group_name, matches)
316
+ rescue StandardError
317
+ next
318
+ end
319
+ end
320
+ break if group_name == 'anyOf' && matches == 1
321
+ end
322
+ raise ValidationException.new(value, template) unless matches == 1
323
+
324
+ value = result_value unless result_value.nil?
325
+ value
326
+ end
327
+
328
+ # Validates and processes the value against the [Hash] type.
329
+ # @param [String] The value to be mapped against the type.
330
+ # @param [String] The possible type of the value.
331
+ # @param [String] The parameter indicates the group (oneOf|anyOf).
332
+ # @param [Integer] The parameter indicates the number of matches of value against types.
333
+ def self.map_hash_type(value, type, group_name, matches)
334
+ if value.instance_of? Hash
335
+ decoded = {}
336
+ value.each do |key, val|
337
+ type = type.chomp('{}').to_s
338
+ val = map_types(val, type, group_name: group_name)
339
+ decoded[key] = val unless type.empty?
340
+ rescue ValidationException
341
+ next
342
+ end
343
+ matches += 1 if decoded.length == value.length
344
+ value = decoded unless decoded.empty?
345
+ end
346
+ [value, matches]
347
+ end
348
+
349
+ # Validates and processes the value against the [Array] type.
350
+ # @param [String] The value to be mapped against the type.
351
+ # @param [String] The possible type of the value.
352
+ # @param [String] The parameter indicates the group (oneOf|anyOf).
353
+ # @param [Integer] The parameter indicates the number of matches of value against types.
354
+ def self.map_array_type(value, type, group_name, matches)
355
+ if value.instance_of? Array
356
+ decoded = []
357
+ value.each do |val|
358
+ type = type.chomp('[]').to_s
359
+ val = map_types(val, type, group_name: group_name)
360
+ decoded.append(val) unless type.empty?
361
+ rescue ValidationException
362
+ next
363
+ end
364
+ matches += 1 if decoded.length == value.length
365
+ value = decoded unless decoded.empty?
366
+ end
367
+ [value, matches]
368
+ end
369
+
370
+ # Validates and processes the value against the type.
371
+ # @param [String] The value to be mapped against the type.
372
+ # @param [String] The possible type of the value.
373
+ # @param [String] The parameter indicates the group (oneOf|anyOf).
374
+ # @param [Integer] The parameter indicates the number of matches of value against types.
375
+ def self.map_type(value, type, _group_name, matches)
376
+ if Square.constants.select do |c|
377
+ Square.const_get(c).to_s == "Square::#{type}"
378
+ end.empty?
379
+ value, matches = map_data_type(value, type, matches)
380
+ else
381
+ value, matches = map_complex_type(value, type, matches)
382
+ end
383
+ [value, matches]
384
+ end
385
+
386
+ # Validates and processes the value against the complex types.
387
+ # @param [String] The value to be mapped against the type.
388
+ # @param [String] The possible type of the value.
389
+ # @param [Integer] The parameter indicates the number of matches of value against types.
390
+ def self.map_complex_type(value, type, matches)
391
+ obj = Square.const_get(type)
392
+ value = if obj.respond_to? 'from_hash'
393
+ obj.send('from_hash', value)
394
+ else
395
+ obj.constants.find { |k| obj.const_get(k) == value }
396
+ end
397
+ matches += 1 unless value.nil?
398
+ [value, matches]
399
+ end
400
+
401
+ # Validates and processes the value against the data types.
402
+ # @param [String] The value to be mapped against the type.
403
+ # @param [String] The possible type of the value.
404
+ # @param [Integer] The parameter indicates the number of matches of value against types.
405
+ def self.map_data_type(value, element, matches)
406
+ element = element.split('|').map { |x| Object.const_get x }
407
+ matches += 1 if element.all? { |x| APIHelper.data_types.include?(x) } &&
408
+ element.any? { |x| (value.instance_of? x) || (value.class.ancestors.include? x) }
409
+ [value, matches]
410
+ end
411
+
412
+ # Validates the value against the template(group of types).
413
+ # @param [String] The value to be mapped against the type.
414
+ # @param [String] The parameter indicates the group of types (oneOf(Integer, String)).
415
+ def self.validate_types(value, template)
416
+ map_types(APIHelper.json_deserialize(value.to_json), template)
417
+ end
418
+
419
+ # Get content-type depending on the value
420
+ def self.get_content_type(value)
421
+ if serializable_types.map { |x| value.is_a? x }.any?
422
+ 'text/plain; charset=utf-8'
423
+ else
424
+ 'application/json; charset=utf-8'
425
+ end
426
+ end
427
+
428
+ # Array of serializable types
429
+ def self.serializable_types
430
+ [String, Numeric, TrueClass,
431
+ FalseClass, Date, DateTime]
432
+ end
433
+
434
+ # Array of supported data types
435
+ def self.data_types
436
+ [String, Float, Integer,
437
+ TrueClass, FalseClass, Date,
438
+ DateTime, Array, Hash, Object]
439
+ end
268
440
  end
269
441
  end
data/lib/square/client.rb CHANGED
@@ -4,7 +4,7 @@ module Square
4
4
  attr_reader :config
5
5
 
6
6
  def sdk_version
7
- '20.1.0.20220616'
7
+ '21.0.0.20220720'
8
8
  end
9
9
 
10
10
  def square_version
@@ -231,13 +231,12 @@ module Square
231
231
  @vendors ||= VendorsApi.new config
232
232
  end
233
233
 
234
- def initialize(connection: nil, adapter: Faraday.default_adapter,
235
- timeout: 60, max_retries: 0, retry_interval: 1,
236
- backoff_factor: 2,
234
+ def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
235
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
237
236
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
238
237
  retry_methods: %i[get put], environment: 'production',
239
238
  custom_url: 'https://connect.squareup.com',
240
- square_version: '2022-06-16', access_token: '',
239
+ square_version: '2022-07-20', access_token: '',
241
240
  user_agent_detail: '', additional_headers: {}, config: nil)
242
241
  @config = if config.nil?
243
242
  Configuration.new(connection: connection, adapter: adapter,
@@ -15,13 +15,12 @@ module Square
15
15
  attr_reader :environments
16
16
  end
17
17
 
18
- def initialize(connection: nil, adapter: Faraday.default_adapter,
19
- timeout: 60, max_retries: 0, retry_interval: 1,
20
- backoff_factor: 2,
18
+ def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
19
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
21
20
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
22
21
  retry_methods: %i[get put], environment: 'production',
23
22
  custom_url: 'https://connect.squareup.com',
24
- square_version: '2022-06-16', access_token: '',
23
+ square_version: '2022-07-20', access_token: '',
25
24
  user_agent_detail: '', additional_headers: {})
26
25
  # The Faraday connection object passed by the SDK user for making requests
27
26
  @connection = connection
@@ -0,0 +1,13 @@
1
+ module Square
2
+ # Class for exceptions when there is a schema validation error.
3
+ class ValidationException < StandardError
4
+ attr_reader :reason
5
+
6
+ # The constructor.
7
+ # @param [String] The reason for raising an exception.
8
+ def initialize(value, template)
9
+ @reason = "The value #{value} provided doesn't validate against the schema #{template}"
10
+ super(reason)
11
+ end
12
+ end
13
+ end
@@ -3,6 +3,7 @@ require 'faraday/retry'
3
3
  require 'faraday/multipart'
4
4
  require 'faraday/follow_redirects'
5
5
  require 'faraday/gzip'
6
+ require 'faraday/net_http_persistent'
6
7
 
7
8
  module Square
8
9
  # An implementation of HttpClient.
data/lib/square.rb CHANGED
@@ -25,6 +25,7 @@ require_relative 'square/http/auth/o_auth2'
25
25
 
26
26
  # Exceptions
27
27
  require_relative 'square/exceptions/api_exception'
28
+ require_relative 'square/exceptions/validation_exception'
28
29
 
29
30
  require_relative 'square/configuration'
30
31
 
data/test/test_helper.rb CHANGED
@@ -49,7 +49,7 @@ class TestHelper
49
49
  end
50
50
  end
51
51
  elsif expected_body.instance_of? Array
52
- return False unless received_body.instance_of? Array
52
+ return false unless received_body.instance_of? Array
53
53
  if check_count == true && (expected_body.length != received_body.length)
54
54
  return false
55
55
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: square.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 20.1.0.20220616
4
+ version: 21.0.0.20220720
5
5
  platform: ruby
6
6
  authors:
7
7
  - Square Developer Platform
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-16 00:00:00.000000000 Z
11
+ date: 2022-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '1.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: faraday-net_http_persistent
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.0'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: certifi
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -219,6 +233,7 @@ files:
219
233
  - lib/square/client.rb
220
234
  - lib/square/configuration.rb
221
235
  - lib/square/exceptions/api_exception.rb
236
+ - lib/square/exceptions/validation_exception.rb
222
237
  - lib/square/http/api_response.rb
223
238
  - lib/square/http/auth/o_auth2.rb
224
239
  - lib/square/http/faraday_client.rb