square.rb 8.0.0.20201216 → 26.1.0.20230119

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +79 -221
  4. data/lib/square/api/apple_pay_api.rb +15 -8
  5. data/lib/square/api/bank_accounts_api.rb +5 -5
  6. data/lib/square/api/base_api.rb +27 -9
  7. data/lib/square/api/booking_custom_attributes_api.rb +555 -0
  8. data/lib/square/api/bookings_api.rb +107 -15
  9. data/lib/square/api/cards_api.rb +171 -0
  10. data/lib/square/api/cash_drawers_api.rb +2 -2
  11. data/lib/square/api/catalog_api.rb +167 -73
  12. data/lib/square/api/checkout_api.rb +205 -3
  13. data/lib/square/api/customer_custom_attributes_api.rb +561 -0
  14. data/lib/square/api/customer_groups_api.rb +17 -8
  15. data/lib/square/api/customer_segments_api.rb +15 -6
  16. data/lib/square/api/customers_api.rb +67 -33
  17. data/lib/square/api/devices_api.rb +3 -2
  18. data/lib/square/api/disputes_api.rb +109 -105
  19. data/lib/square/api/gift_card_activities_api.rb +132 -0
  20. data/lib/square/api/gift_cards_api.rb +298 -0
  21. data/lib/square/api/inventory_api.rb +263 -24
  22. data/lib/square/api/invoices_api.rb +21 -21
  23. data/lib/square/api/labor_api.rb +70 -68
  24. data/lib/square/api/location_custom_attributes_api.rb +584 -0
  25. data/lib/square/api/locations_api.rb +21 -14
  26. data/lib/square/api/loyalty_api.rb +333 -50
  27. data/lib/square/api/merchants_api.rb +11 -9
  28. data/lib/square/api/mobile_authorization_api.rb +4 -4
  29. data/lib/square/api/o_auth_api.rb +78 -25
  30. data/lib/square/api/order_custom_attributes_api.rb +601 -0
  31. data/lib/square/api/orders_api.rb +84 -45
  32. data/lib/square/api/payments_api.rb +72 -24
  33. data/lib/square/api/payouts_api.rb +173 -0
  34. data/lib/square/api/refunds_api.rb +18 -7
  35. data/lib/square/api/sites_api.rb +43 -0
  36. data/lib/square/api/snippets_api.rb +146 -0
  37. data/lib/square/api/subscriptions_api.rb +190 -15
  38. data/lib/square/api/team_api.rb +46 -46
  39. data/lib/square/api/terminal_api.rb +172 -22
  40. data/lib/square/api/transactions_api.rb +15 -191
  41. data/lib/square/api/v1_transactions_api.rb +52 -124
  42. data/lib/square/api/vendors_api.rb +257 -0
  43. data/lib/square/api/webhook_subscriptions_api.rb +327 -0
  44. data/lib/square/api_helper.rb +217 -57
  45. data/lib/square/client.rb +90 -18
  46. data/lib/square/configuration.rb +64 -20
  47. data/lib/square/exceptions/validation_exception.rb +13 -0
  48. data/lib/square/http/api_response.rb +7 -9
  49. data/lib/square/http/faraday_client.rb +40 -9
  50. data/lib/square/http/http_client.rb +31 -12
  51. data/lib/square/http/http_request.rb +6 -2
  52. data/lib/square/utilities/date_time_helper.rb +151 -0
  53. data/lib/square/utilities/file_wrapper.rb +1 -2
  54. data/lib/square.rb +56 -44
  55. data/test/api/test_locations_api.rb +2 -5
  56. data/test/test_helper.rb +2 -2
  57. metadata +83 -15
  58. data/lib/square/api/v1_employees_api.rb +0 -751
  59. data/lib/square/api/v1_items_api.rb +0 -1766
@@ -5,17 +5,22 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Deletes a set of [CatalogItem](#type-catalogitem)s based on the
8
+ # Deletes a set of [CatalogItem]($m/CatalogItem)s based on the
9
9
  # provided list of target IDs and returns a set of successfully deleted IDs
10
10
  # in
11
11
  # the response. Deletion is a cascading event such that all children of the
12
12
  # targeted object are also deleted. For example, deleting a CatalogItem will
13
- # also delete all of its [CatalogItemVariation](#type-catalogitemvariation)
13
+ # also delete all of its [CatalogItemVariation]($m/CatalogItemVariation)
14
14
  # children.
15
15
  # `BatchDeleteCatalogObjects` succeeds even if only a portion of the
16
16
  # targeted
17
17
  # IDs can be deleted. The response will only include IDs that were
18
18
  # actually deleted.
19
+ # To ensure consistency, only one delete request is processed at a time per
20
+ # seller account.
21
+ # While one (batch or non-batch) delete request is being processed, other
22
+ # (batched and non-batched)
23
+ # delete requests are rejected with the `429` error code.
19
24
  # @param [BatchDeleteCatalogObjectsRequest] body Required parameter: An
20
25
  # object containing the fields to POST for the request. See the
21
26
  # corresponding object definition for field details.
@@ -29,7 +34,7 @@ module Square
29
34
  # Prepare headers.
30
35
  _headers = {
31
36
  'accept' => 'application/json',
32
- 'content-type' => 'application/json; charset=utf-8'
37
+ 'Content-Type' => 'application/json'
33
38
  }
34
39
 
35
40
  # Prepare and execute HttpRequest.
@@ -50,13 +55,11 @@ module Square
50
55
  end
51
56
 
52
57
  # Returns a set of objects based on the provided ID.
53
- # Each [CatalogItem](#type-catalogitem) returned in the set includes all of
54
- # its
58
+ # Each [CatalogItem]($m/CatalogItem) returned in the set includes all of its
55
59
  # child information including: all of its
56
- # [CatalogItemVariation](#type-catalogitemvariation) objects, references to
57
- # its [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids
58
- # of
59
- # any [CatalogTax](#type-catalogtax) objects that apply to it.
60
+ # [CatalogItemVariation]($m/CatalogItemVariation) objects, references to
61
+ # its [CatalogModifierList]($m/CatalogModifierList) objects, and the ids of
62
+ # any [CatalogTax]($m/CatalogTax) objects that apply to it.
60
63
  # @param [BatchRetrieveCatalogObjectsRequest] body Required parameter: An
61
64
  # object containing the fields to POST for the request. See the
62
65
  # corresponding object definition for field details.
@@ -70,7 +73,7 @@ module Square
70
73
  # Prepare headers.
71
74
  _headers = {
72
75
  'accept' => 'application/json',
73
- 'content-type' => 'application/json; charset=utf-8'
76
+ 'Content-Type' => 'application/json'
74
77
  }
75
78
 
76
79
  # Prepare and execute HttpRequest.
@@ -104,6 +107,11 @@ module Square
104
107
  # request (items, variations, modifier lists, discounts, and taxes) is no
105
108
  # more
106
109
  # than 10,000.
110
+ # To ensure consistency, only one update request is processed at a time per
111
+ # seller account.
112
+ # While one (batch or non-batch) update request is being processed, other
113
+ # (batched and non-batched)
114
+ # update requests are rejected with the `429` error code.
107
115
  # @param [BatchUpsertCatalogObjectsRequest] body Required parameter: An
108
116
  # object containing the fields to POST for the request. See the
109
117
  # corresponding object definition for field details.
@@ -117,7 +125,7 @@ module Square
117
125
  # Prepare headers.
118
126
  _headers = {
119
127
  'accept' => 'application/json',
120
- 'content-type' => 'application/json; charset=utf-8'
128
+ 'Content-Type' => 'application/json'
121
129
  }
122
130
 
123
131
  # Prepare and execute HttpRequest.
@@ -138,10 +146,10 @@ module Square
138
146
  end
139
147
 
140
148
  # Uploads an image file to be represented by a
141
- # [CatalogImage](#type-catalogimage) object linked to an existing
142
- # [CatalogObject](#type-catalogobject) instance. A call to this endpoint can
143
- # upload an image, link an image to
144
- # a catalog object, or do both.
149
+ # [CatalogImage]($m/CatalogImage) object that can be linked to an existing
150
+ # [CatalogObject]($m/CatalogObject) instance. The resulting `CatalogImage`
151
+ # is unattached to any `CatalogObject` if the `object_id`
152
+ # is not specified.
145
153
  # This `CreateCatalogImage` endpoint accepts HTTP multipart/form-data
146
154
  # requests with a JSON part and an image file part in
147
155
  # JPEG, PJPEG, PNG, or GIF format. The maximum file size is 15MB.
@@ -198,6 +206,71 @@ module Square
198
206
  )
199
207
  end
200
208
 
209
+ # Uploads a new image file to replace the existing one in the specified
210
+ # [CatalogImage]($m/CatalogImage) object.
211
+ # This `UpdateCatalogImage` endpoint accepts HTTP multipart/form-data
212
+ # requests with a JSON part and an image file part in
213
+ # JPEG, PJPEG, PNG, or GIF format. The maximum file size is 15MB.
214
+ # @param [String] image_id Required parameter: The ID of the `CatalogImage`
215
+ # object to update the encapsulated image file.
216
+ # @param [UpdateCatalogImageRequest] request Optional parameter: Example:
217
+ # @param [File | UploadIO] image_file Optional parameter: Example:
218
+ # @return [UpdateCatalogImageResponse Hash] response from the API call
219
+ def update_catalog_image(image_id:,
220
+ request: nil,
221
+ image_file: nil)
222
+ # Prepare query url.
223
+ _query_builder = config.get_base_uri
224
+ _query_builder << '/v2/catalog/images/{image_id}'
225
+ _query_builder = APIHelper.append_url_with_template_parameters(
226
+ _query_builder,
227
+ 'image_id' => { 'value' => image_id, 'encode' => true }
228
+ )
229
+ _query_url = APIHelper.clean_url _query_builder
230
+
231
+ if image_file.is_a? FileWrapper
232
+ image_file_wrapper = image_file.file
233
+ image_file_content_type = image_file.content_type
234
+ else
235
+ image_file_wrapper = image_file
236
+ image_file_content_type = 'image/jpeg'
237
+ end
238
+
239
+ # Prepare headers.
240
+ _headers = {
241
+ 'accept' => 'application/json'
242
+ }
243
+
244
+ # Prepare form parameters.
245
+ _parameters = {
246
+ 'request' => Faraday::UploadIO.new(
247
+ StringIO.new(request.to_json),
248
+ 'application/json'
249
+ ),
250
+ 'image_file' => Faraday::UploadIO.new(
251
+ image_file_wrapper,
252
+ image_file_content_type
253
+ )
254
+ }
255
+ _parameters = APIHelper.form_encode_parameters(_parameters)
256
+
257
+ # Prepare and execute HttpRequest.
258
+ _request = config.http_client.put(
259
+ _query_url,
260
+ headers: _headers,
261
+ parameters: _parameters
262
+ )
263
+ OAuth2.apply(config, _request)
264
+ _response = execute_request(_request)
265
+
266
+ # Return appropriate response type.
267
+ decoded = APIHelper.json_deserialize(_response.raw_body)
268
+ _errors = APIHelper.map_response(decoded, ['errors'])
269
+ ApiResponse.new(
270
+ _response, data: decoded, errors: _errors
271
+ )
272
+ end
273
+
201
274
  # Retrieves information about the Square Catalog API, such as batch size
202
275
  # limits that can be used by the `BatchUpsertCatalogObjects` endpoint.
203
276
  # @return [CatalogInfoResponse Hash] response from the API call
@@ -228,34 +301,40 @@ module Square
228
301
  )
229
302
  end
230
303
 
231
- # Returns a list of [CatalogObject](#type-catalogobject)s that includes
232
- # all objects of a set of desired types (for example, all
233
- # [CatalogItem](#type-catalogitem)
234
- # and [CatalogTax](#type-catalogtax) objects) in the catalog. The `types`
235
- # parameter
236
- # is specified as a comma-separated list of valid
237
- # [CatalogObject](#type-catalogobject) types:
238
- # `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, `CATEGORY`,
239
- # `DISCOUNT`, `TAX`, `IMAGE`.
304
+ # Returns a list of all [CatalogObject]($m/CatalogObject)s of the specified
305
+ # types in the catalog.
306
+ # The `types` parameter is specified as a comma-separated list of the
307
+ # [CatalogObjectType]($m/CatalogObjectType) values,
308
+ # for example, "`ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`,
309
+ # `CATEGORY`, `DISCOUNT`, `TAX`, `IMAGE`".
240
310
  # __Important:__ ListCatalog does not return deleted catalog items. To
241
311
  # retrieve
242
312
  # deleted catalog items, use
243
- # [SearchCatalogObjects](#endpoint-Catalog-SearchCatalogObjects)
313
+ # [SearchCatalogObjects]($e/Catalog/SearchCatalogObjects)
244
314
  # and set the `include_deleted_objects` attribute value to `true`.
245
315
  # @param [String] cursor Optional parameter: The pagination cursor returned
246
- # in the previous response. Leave unset for an initial request. See
316
+ # in the previous response. Leave unset for an initial request. The page
317
+ # size is currently set to be 100. See
247
318
  # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
248
319
  # for more information.
249
320
  # @param [String] types Optional parameter: An optional case-insensitive,
250
- # comma-separated list of object types to retrieve, for example
251
- # `ITEM,ITEM_VARIATION,CATEGORY,IMAGE`. The legal values are taken from the
252
- # CatalogObjectType enum: `ITEM`, `ITEM_VARIATION`, `CATEGORY`, `DISCOUNT`,
253
- # `TAX`, `MODIFIER`, `MODIFIER_LIST`, or `IMAGE`.
254
- # @param [Long] catalog_version Optional parameter: The specific version of
255
- # the catalog objects to be included in the response. This allows you to
321
+ # comma-separated list of object types to retrieve. The valid values are
322
+ # defined in the [CatalogObjectType]($m/CatalogObjectType) enum, for
323
+ # example, `ITEM`, `ITEM_VARIATION`, `CATEGORY`, `DISCOUNT`, `TAX`,
324
+ # `MODIFIER`, `MODIFIER_LIST`, `IMAGE`, etc. If this is unspecified, the
325
+ # operation returns objects of all the top level types at the version of the
326
+ # Square API used to make the request. Object types that are nested onto
327
+ # other object types are not included in the defaults. At the current API
328
+ # version the default object types are: ITEM, CATEGORY, TAX, DISCOUNT,
329
+ # MODIFIER_LIST, PRICING_RULE, PRODUCT_SET, TIME_PERIOD, MEASUREMENT_UNIT,
330
+ # SUBSCRIPTION_PLAN, ITEM_OPTION, CUSTOM_ATTRIBUTE_DEFINITION,
331
+ # QUICK_AMOUNT_SETTINGS.
332
+ # @param [Integer] catalog_version Optional parameter: The specific version
333
+ # of the catalog objects to be included in the response. This allows you to
256
334
  # retrieve historical versions of objects. The specified version value is
257
- # matched against the [CatalogObject](#type-catalogobject)s' `version`
258
- # attribute.
335
+ # matched against the [CatalogObject]($m/CatalogObject)s' `version`
336
+ # attribute. If not included, results will be from the current version of
337
+ # the catalog.
259
338
  # @return [ListCatalogResponse Hash] response from the API call
260
339
  def list_catalog(cursor: nil,
261
340
  types: nil,
@@ -292,7 +371,12 @@ module Square
292
371
  )
293
372
  end
294
373
 
295
- # Creates or updates the target [CatalogObject](#type-catalogobject).
374
+ # Creates a new or updates the specified [CatalogObject]($m/CatalogObject).
375
+ # To ensure consistency, only one update request is processed at a time per
376
+ # seller account.
377
+ # While one (batch or non-batch) update request is being processed, other
378
+ # (batched and non-batched)
379
+ # update requests are rejected with the `429` error code.
296
380
  # @param [UpsertCatalogObjectRequest] body Required parameter: An object
297
381
  # containing the fields to POST for the request. See the corresponding
298
382
  # object definition for field details.
@@ -306,7 +390,7 @@ module Square
306
390
  # Prepare headers.
307
391
  _headers = {
308
392
  'accept' => 'application/json',
309
- 'content-type' => 'application/json; charset=utf-8'
393
+ 'Content-Type' => 'application/json'
310
394
  }
311
395
 
312
396
  # Prepare and execute HttpRequest.
@@ -326,14 +410,19 @@ module Square
326
410
  )
327
411
  end
328
412
 
329
- # Deletes a single [CatalogObject](#type-catalogobject) based on the
413
+ # Deletes a single [CatalogObject]($m/CatalogObject) based on the
330
414
  # provided ID and returns the set of successfully deleted IDs in the
331
415
  # response.
332
416
  # Deletion is a cascading event such that all children of the targeted
333
417
  # object
334
- # are also deleted. For example, deleting a [CatalogItem](#type-catalogitem)
418
+ # are also deleted. For example, deleting a [CatalogItem]($m/CatalogItem)
335
419
  # will also delete all of its
336
- # [CatalogItemVariation](#type-catalogitemvariation) children.
420
+ # [CatalogItemVariation]($m/CatalogItemVariation) children.
421
+ # To ensure consistency, only one delete request is processed at a time per
422
+ # seller account.
423
+ # While one (batch or non-batch) delete request is being processed, other
424
+ # (batched and non-batched)
425
+ # delete requests are rejected with the `429` error code.
337
426
  # @param [String] object_id Required parameter: The ID of the catalog object
338
427
  # to be deleted. When an object is deleted, other objects in the graph that
339
428
  # depend on that object will be deleted as well (for example, deleting a
@@ -370,30 +459,35 @@ module Square
370
459
  )
371
460
  end
372
461
 
373
- # Returns a single [CatalogItem](#type-catalogitem) as a
374
- # [CatalogObject](#type-catalogobject) based on the provided ID. The
375
- # returned
376
- # object includes all of the relevant [CatalogItem](#type-catalogitem)
377
- # information including: [CatalogItemVariation](#type-catalogitemvariation)
462
+ # Returns a single [CatalogItem]($m/CatalogItem) as a
463
+ # [CatalogObject]($m/CatalogObject) based on the provided ID. The returned
464
+ # object includes all of the relevant [CatalogItem]($m/CatalogItem)
465
+ # information including: [CatalogItemVariation]($m/CatalogItemVariation)
378
466
  # children, references to its
379
- # [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids of
380
- # any [CatalogTax](#type-catalogtax) objects that apply to it.
467
+ # [CatalogModifierList]($m/CatalogModifierList) objects, and the ids of
468
+ # any [CatalogTax]($m/CatalogTax) objects that apply to it.
381
469
  # @param [String] object_id Required parameter: The object ID of any type of
382
470
  # catalog objects to be retrieved.
383
- # @param [Boolean] include_related_objects Optional parameter: If `true`,
384
- # the response will include additional objects that are related to the
385
- # requested object, as follows: If the `object` field of the response
386
- # contains a `CatalogItem`, its associated `CatalogCategory`, `CatalogTax`,
387
- # `CatalogImage` and `CatalogModifierList` objects will be returned in the
388
- # `related_objects` field of the response. If the `object` field of the
389
- # response contains a `CatalogItemVariation`, its parent `CatalogItem` will
390
- # be returned in the `related_objects` field of the response. Default
391
- # value: `false`
392
- # @param [Long] catalog_version Optional parameter: Requests objects as of a
393
- # specific version of the catalog. This allows you to retrieve historical
394
- # versions of objects. The value to retrieve a specific version of an object
395
- # can be found in the version field of
396
- # [CatalogObject](#type-catalogobject)s.
471
+ # @param [TrueClass|FalseClass] include_related_objects Optional parameter:
472
+ # If `true`, the response will include additional objects that are related
473
+ # to the requested objects. Related objects are defined as any objects
474
+ # referenced by ID by the results in the `objects` field of the response.
475
+ # These objects are put in the `related_objects` field. Setting this to
476
+ # `true` is helpful when the objects are needed for immediate display to a
477
+ # user. This process only goes one level deep. Objects referenced by the
478
+ # related objects will not be included. For example, if the `objects` field
479
+ # of the response contains a CatalogItem, its associated CatalogCategory
480
+ # objects, CatalogTax objects, CatalogImage objects and CatalogModifierLists
481
+ # will be returned in the `related_objects` field of the response. If the
482
+ # `objects` field of the response contains a CatalogItemVariation, its
483
+ # parent CatalogItem will be returned in the `related_objects` field of the
484
+ # response. Default value: `false`
485
+ # @param [Integer] catalog_version Optional parameter: Requests objects as
486
+ # of a specific version of the catalog. This allows you to retrieve
487
+ # historical versions of objects. The value to retrieve a specific version
488
+ # of an object can be found in the version field of
489
+ # [CatalogObject]($m/CatalogObject)s. If not included, results will be from
490
+ # the current version of the catalog.
397
491
  # @return [RetrieveCatalogObjectResponse Hash] response from the API call
398
492
  def retrieve_catalog_object(object_id:,
399
493
  include_related_objects: false,
@@ -433,12 +527,12 @@ module Square
433
527
  )
434
528
  end
435
529
 
436
- # Searches for [CatalogObject](#type-CatalogObject) of any types against
530
+ # Searches for [CatalogObject]($m/CatalogObject) of any type by matching
437
531
  # supported search attribute values,
438
532
  # excluding custom attribute values on items or item variations, against one
439
- # or more of the specified query expressions,
533
+ # or more of the specified query filters.
440
534
  # This (`SearchCatalogObjects`) endpoint differs from the
441
- # [SearchCatalogItems](#endpoint-Catalog-SearchCatalogItems)
535
+ # [SearchCatalogItems]($e/Catalog/SearchCatalogItems)
442
536
  # endpoint in the following aspects:
443
537
  # - `SearchCatalogItems` can only search for items or item variations,
444
538
  # whereas `SearchCatalogObjects` can search for any type of catalog objects.
@@ -463,7 +557,7 @@ module Square
463
557
  # Prepare headers.
464
558
  _headers = {
465
559
  'accept' => 'application/json',
466
- 'content-type' => 'application/json; charset=utf-8'
560
+ 'Content-Type' => 'application/json'
467
561
  }
468
562
 
469
563
  # Prepare and execute HttpRequest.
@@ -486,9 +580,9 @@ module Square
486
580
  # Searches for catalog items or item variations by matching supported search
487
581
  # attribute values, including
488
582
  # custom attribute values, against one or more of the specified query
489
- # expressions,
583
+ # filters.
490
584
  # This (`SearchCatalogItems`) endpoint differs from the
491
- # [SearchCatalogObjects](#endpoint-Catalog-SearchCatalogObjects)
585
+ # [SearchCatalogObjects]($e/Catalog/SearchCatalogObjects)
492
586
  # endpoint in the following aspects:
493
587
  # - `SearchCatalogItems` can only search for items or item variations,
494
588
  # whereas `SearchCatalogObjects` can search for any type of catalog objects.
@@ -513,7 +607,7 @@ module Square
513
607
  # Prepare headers.
514
608
  _headers = {
515
609
  'accept' => 'application/json',
516
- 'content-type' => 'application/json; charset=utf-8'
610
+ 'Content-Type' => 'application/json'
517
611
  }
518
612
 
519
613
  # Prepare and execute HttpRequest.
@@ -533,8 +627,8 @@ module Square
533
627
  )
534
628
  end
535
629
 
536
- # Updates the [CatalogModifierList](#type-catalogmodifierlist) objects
537
- # that apply to the targeted [CatalogItem](#type-catalogitem) without having
630
+ # Updates the [CatalogModifierList]($m/CatalogModifierList) objects
631
+ # that apply to the targeted [CatalogItem]($m/CatalogItem) without having
538
632
  # to perform an upsert on the entire item.
539
633
  # @param [UpdateItemModifierListsRequest] body Required parameter: An object
540
634
  # containing the fields to POST for the request. See the corresponding
@@ -549,7 +643,7 @@ module Square
549
643
  # Prepare headers.
550
644
  _headers = {
551
645
  'accept' => 'application/json',
552
- 'content-type' => 'application/json; charset=utf-8'
646
+ 'Content-Type' => 'application/json'
553
647
  }
554
648
 
555
649
  # Prepare and execute HttpRequest.
@@ -569,8 +663,8 @@ module Square
569
663
  )
570
664
  end
571
665
 
572
- # Updates the [CatalogTax](#type-catalogtax) objects that apply to the
573
- # targeted [CatalogItem](#type-catalogitem) without having to perform an
666
+ # Updates the [CatalogTax]($m/CatalogTax) objects that apply to the
667
+ # targeted [CatalogItem]($m/CatalogItem) without having to perform an
574
668
  # upsert on the entire item.
575
669
  # @param [UpdateItemTaxesRequest] body Required parameter: An object
576
670
  # containing the fields to POST for the request. See the corresponding
@@ -585,7 +679,7 @@ module Square
585
679
  # Prepare headers.
586
680
  _headers = {
587
681
  'accept' => 'application/json',
588
- 'content-type' => 'application/json; charset=utf-8'
682
+ 'Content-Type' => 'application/json'
589
683
  }
590
684
 
591
685
  # Prepare and execute HttpRequest.
@@ -5,9 +5,16 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Links a `checkoutId` to a `checkout_page_url` that customers will
9
- # be directed to in order to provide their payment information using a
8
+ # Links a `checkoutId` to a `checkout_page_url` that customers are
9
+ # directed to in order to provide their payment information using a
10
10
  # payment processing workflow hosted on connect.squareup.com.
11
+ # NOTE: The Checkout API has been updated with new features.
12
+ # For more information, see [Checkout API
13
+ # highlights](https://developer.squareup.com/docs/checkout-api#checkout-api-
14
+ # highlights).
15
+ # We recommend that you use the
16
+ # new [CreatePaymentLink]($e/Checkout/CreatePaymentLink)
17
+ # endpoint in place of this previously released endpoint.
11
18
  # @param [String] location_id Required parameter: The ID of the business
12
19
  # location to associate the checkout with.
13
20
  # @param [CreateCheckoutRequest] body Required parameter: An object
@@ -16,6 +23,7 @@ module Square
16
23
  # @return [CreateCheckoutResponse Hash] response from the API call
17
24
  def create_checkout(location_id:,
18
25
  body:)
26
+ warn 'Endpoint create_checkout in CheckoutApi is deprecated'
19
27
  # Prepare query url.
20
28
  _query_builder = config.get_base_uri
21
29
  _query_builder << '/v2/locations/{location_id}/checkouts'
@@ -28,7 +36,7 @@ module Square
28
36
  # Prepare headers.
29
37
  _headers = {
30
38
  'accept' => 'application/json',
31
- 'content-type' => 'application/json; charset=utf-8'
39
+ 'Content-Type' => 'application/json'
32
40
  }
33
41
 
34
42
  # Prepare and execute HttpRequest.
@@ -47,5 +55,199 @@ module Square
47
55
  _response, data: decoded, errors: _errors
48
56
  )
49
57
  end
58
+
59
+ # Lists all payment links.
60
+ # @param [String] cursor Optional parameter: A pagination cursor returned by
61
+ # a previous call to this endpoint. Provide this cursor to retrieve the next
62
+ # set of results for the original query. If a cursor is not provided, the
63
+ # endpoint returns the first page of the results. For more information, see
64
+ # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
65
+ # .
66
+ # @param [Integer] limit Optional parameter: A limit on the number of
67
+ # results to return per page. The limit is advisory and the implementation
68
+ # might return more or less results. If the supplied limit is negative,
69
+ # zero, or greater than the maximum limit of 1000, it is ignored. Default
70
+ # value: `100`
71
+ # @return [ListPaymentLinksResponse Hash] response from the API call
72
+ def list_payment_links(cursor: nil,
73
+ limit: nil)
74
+ # Prepare query url.
75
+ _query_builder = config.get_base_uri
76
+ _query_builder << '/v2/online-checkout/payment-links'
77
+ _query_builder = APIHelper.append_url_with_query_parameters(
78
+ _query_builder,
79
+ 'cursor' => cursor,
80
+ 'limit' => limit
81
+ )
82
+ _query_url = APIHelper.clean_url _query_builder
83
+
84
+ # Prepare headers.
85
+ _headers = {
86
+ 'accept' => 'application/json'
87
+ }
88
+
89
+ # Prepare and execute HttpRequest.
90
+ _request = config.http_client.get(
91
+ _query_url,
92
+ headers: _headers
93
+ )
94
+ OAuth2.apply(config, _request)
95
+ _response = execute_request(_request)
96
+
97
+ # Return appropriate response type.
98
+ decoded = APIHelper.json_deserialize(_response.raw_body)
99
+ _errors = APIHelper.map_response(decoded, ['errors'])
100
+ ApiResponse.new(
101
+ _response, data: decoded, errors: _errors
102
+ )
103
+ end
104
+
105
+ # Creates a Square-hosted checkout page. Applications can share the
106
+ # resulting payment link with their buyer to pay for goods and services.
107
+ # @param [CreatePaymentLinkRequest] body Required parameter: An object
108
+ # containing the fields to POST for the request. See the corresponding
109
+ # object definition for field details.
110
+ # @return [CreatePaymentLinkResponse Hash] response from the API call
111
+ def create_payment_link(body:)
112
+ # Prepare query url.
113
+ _query_builder = config.get_base_uri
114
+ _query_builder << '/v2/online-checkout/payment-links'
115
+ _query_url = APIHelper.clean_url _query_builder
116
+
117
+ # Prepare headers.
118
+ _headers = {
119
+ 'accept' => 'application/json',
120
+ 'Content-Type' => 'application/json'
121
+ }
122
+
123
+ # Prepare and execute HttpRequest.
124
+ _request = config.http_client.post(
125
+ _query_url,
126
+ headers: _headers,
127
+ parameters: body.to_json
128
+ )
129
+ OAuth2.apply(config, _request)
130
+ _response = execute_request(_request)
131
+
132
+ # Return appropriate response type.
133
+ decoded = APIHelper.json_deserialize(_response.raw_body)
134
+ _errors = APIHelper.map_response(decoded, ['errors'])
135
+ ApiResponse.new(
136
+ _response, data: decoded, errors: _errors
137
+ )
138
+ end
139
+
140
+ # Deletes a payment link.
141
+ # @param [String] id Required parameter: The ID of the payment link to
142
+ # delete.
143
+ # @return [DeletePaymentLinkResponse Hash] response from the API call
144
+ def delete_payment_link(id:)
145
+ # Prepare query url.
146
+ _query_builder = config.get_base_uri
147
+ _query_builder << '/v2/online-checkout/payment-links/{id}'
148
+ _query_builder = APIHelper.append_url_with_template_parameters(
149
+ _query_builder,
150
+ 'id' => { 'value' => id, 'encode' => true }
151
+ )
152
+ _query_url = APIHelper.clean_url _query_builder
153
+
154
+ # Prepare headers.
155
+ _headers = {
156
+ 'accept' => 'application/json'
157
+ }
158
+
159
+ # Prepare and execute HttpRequest.
160
+ _request = config.http_client.delete(
161
+ _query_url,
162
+ headers: _headers
163
+ )
164
+ OAuth2.apply(config, _request)
165
+ _response = execute_request(_request)
166
+
167
+ # Return appropriate response type.
168
+ decoded = APIHelper.json_deserialize(_response.raw_body)
169
+ _errors = APIHelper.map_response(decoded, ['errors'])
170
+ ApiResponse.new(
171
+ _response, data: decoded, errors: _errors
172
+ )
173
+ end
174
+
175
+ # Retrieves a payment link.
176
+ # @param [String] id Required parameter: The ID of link to retrieve.
177
+ # @return [RetrievePaymentLinkResponse Hash] response from the API call
178
+ def retrieve_payment_link(id:)
179
+ # Prepare query url.
180
+ _query_builder = config.get_base_uri
181
+ _query_builder << '/v2/online-checkout/payment-links/{id}'
182
+ _query_builder = APIHelper.append_url_with_template_parameters(
183
+ _query_builder,
184
+ 'id' => { 'value' => id, 'encode' => true }
185
+ )
186
+ _query_url = APIHelper.clean_url _query_builder
187
+
188
+ # Prepare headers.
189
+ _headers = {
190
+ 'accept' => 'application/json'
191
+ }
192
+
193
+ # Prepare and execute HttpRequest.
194
+ _request = config.http_client.get(
195
+ _query_url,
196
+ headers: _headers
197
+ )
198
+ OAuth2.apply(config, _request)
199
+ _response = execute_request(_request)
200
+
201
+ # Return appropriate response type.
202
+ decoded = APIHelper.json_deserialize(_response.raw_body)
203
+ _errors = APIHelper.map_response(decoded, ['errors'])
204
+ ApiResponse.new(
205
+ _response, data: decoded, errors: _errors
206
+ )
207
+ end
208
+
209
+ # Updates a payment link. You can update the `payment_link` fields such as
210
+ # `description`, `checkout_options`, and `pre_populated_data`.
211
+ # You cannot update other fields such as the `order_id`, `version`, `URL`,
212
+ # or `timestamp` field.
213
+ # @param [String] id Required parameter: The ID of the payment link to
214
+ # update.
215
+ # @param [UpdatePaymentLinkRequest] body Required parameter: An object
216
+ # containing the fields to POST for the request. See the corresponding
217
+ # object definition for field details.
218
+ # @return [UpdatePaymentLinkResponse Hash] response from the API call
219
+ def update_payment_link(id:,
220
+ body:)
221
+ # Prepare query url.
222
+ _query_builder = config.get_base_uri
223
+ _query_builder << '/v2/online-checkout/payment-links/{id}'
224
+ _query_builder = APIHelper.append_url_with_template_parameters(
225
+ _query_builder,
226
+ 'id' => { 'value' => id, 'encode' => true }
227
+ )
228
+ _query_url = APIHelper.clean_url _query_builder
229
+
230
+ # Prepare headers.
231
+ _headers = {
232
+ 'accept' => 'application/json',
233
+ 'Content-Type' => 'application/json'
234
+ }
235
+
236
+ # Prepare and execute HttpRequest.
237
+ _request = config.http_client.put(
238
+ _query_url,
239
+ headers: _headers,
240
+ parameters: body.to_json
241
+ )
242
+ OAuth2.apply(config, _request)
243
+ _response = execute_request(_request)
244
+
245
+ # Return appropriate response type.
246
+ decoded = APIHelper.json_deserialize(_response.raw_body)
247
+ _errors = APIHelper.map_response(decoded, ['errors'])
248
+ ApiResponse.new(
249
+ _response, data: decoded, errors: _errors
250
+ )
251
+ end
50
252
  end
51
253
  end