square.rb 33.0.0.20231018 → 36.1.0.20240320

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: b1a9e797a4ed71794d0b22d02812a467b629f093bf7b52d0f431d1989b7674ae
4
- data.tar.gz: b9f99ab1089d405de8c1e73efb286beed4f3c0e609c40e84a0453e403c31c57f
3
+ metadata.gz: 6ca5ac550267d6ef5f80789ac3b8e8e2034af630f0ef9ad50d9c57b62b7505c4
4
+ data.tar.gz: f9c1d0f6d335ca88a5b7854a9cd64172ffe322aac6d50be06cc84988be0c6d8c
5
5
  SHA512:
6
- metadata.gz: 5d425e644acdb896add3713f6a5883d998e37a9cd7ffe444186cff00b169f7a1fc2d1fbb492a75eb853547e28e2fe623829ece836224c3175eb25767aa9b65ff
7
- data.tar.gz: 78de8fb5d730819d3e731776ed7c87c8448feec80666a1d5b9b4a594fa78f8aa1521f25c81fc7ec03bb17f762e7b80a12f436090d030d3c44c40a4468dafa210
6
+ metadata.gz: 64df0c00f641647f66e9dc4186eac0a80952607c42304e4332599396c31e8fb3078d405bc29d0dc22b68848bc36965e959a5a682aa50ef9c9144ad42c2880334
7
+ data.tar.gz: 5e51a74b742960cfa8019bb54aa8081c0906ad258b70368a312388221694875308dfeb0ccaf5f0ba122d0ccce238474dc1e5d3684df694a1662bc42bec821cce
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2023 Square, Inc.
1
+ Copyright 2024 Square, Inc.
2
2
  Licensed under the Apache License, Version 2.0 (the "License");
3
3
  you may not use this file except in compliance with the License.
4
4
  You may obtain a copy of the License at
@@ -1,10 +1,11 @@
1
1
  module Square
2
2
  # BaseApi.
3
3
  class BaseApi
4
+ include CoreLibrary
4
5
  attr_accessor :config, :http_call_back
5
6
 
6
7
  def self.user_agent
7
- 'Square-Ruby-SDK/33.0.0.20231018 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}'
8
+ 'Square-Ruby-SDK/36.1.0.20240320 ({api-version}) {engine}/{engine-version} ({os-info}) {detail}'
8
9
  end
9
10
 
10
11
  def self.user_agent_parameters
@@ -58,7 +58,7 @@ module Square
58
58
  # The required input must include the following:
59
59
  # - `Booking.location_id`
60
60
  # - `Booking.start_at`
61
- # - `Booking.team_member_id`
61
+ # - `Booking.AppointmentSegment.team_member_id`
62
62
  # - `Booking.AppointmentSegment.service_variation_id`
63
63
  # - `Booking.AppointmentSegment.service_variation_version`
64
64
  # To call this endpoint with buyer-level permissions, set
@@ -328,10 +328,19 @@ module Square
328
328
  # of an object can be found in the version field of
329
329
  # [CatalogObject]($m/CatalogObject)s. If not included, results will be from
330
330
  # the current version of the catalog.
331
+ # @param [TrueClass | FalseClass] include_category_path_to_root Optional
332
+ # parameter: Specifies whether or not to include the `path_to_root` list for
333
+ # each returned category instance. The `path_to_root` list consists of
334
+ # `CategoryPathToRootNode` objects and specifies the path that starts with
335
+ # the immediate parent category of the returned category and ends with its
336
+ # root category. If the returned category is a top-level category, the
337
+ # `path_to_root` list is empty and is not returned in the response
338
+ # payload.
331
339
  # @return [RetrieveCatalogObjectResponse Hash] response from the API call
332
340
  def retrieve_catalog_object(object_id:,
333
341
  include_related_objects: false,
334
- catalog_version: nil)
342
+ catalog_version: nil,
343
+ include_category_path_to_root: false)
335
344
  new_api_call_builder
336
345
  .request(new_request_builder(HttpMethodEnum::GET,
337
346
  '/v2/catalog/object/{object_id}',
@@ -340,6 +349,7 @@ module Square
340
349
  .should_encode(true))
341
350
  .query_param(new_parameter(include_related_objects, key: 'include_related_objects'))
342
351
  .query_param(new_parameter(catalog_version, key: 'catalog_version'))
352
+ .query_param(new_parameter(include_category_path_to_root, key: 'include_category_path_to_root'))
343
353
  .header_param(new_parameter('application/json', key: 'accept'))
344
354
  .auth(Single.new('global')))
345
355
  .response(new_response_handler
@@ -35,13 +35,98 @@ module Square
35
35
  .execute
36
36
  end
37
37
 
38
+ # Retrieves the location-level settings for a Square-hosted checkout page.
39
+ # @param [String] location_id Required parameter: The ID of the location for
40
+ # which to retrieve settings.
41
+ # @return [RetrieveLocationSettingsResponse Hash] response from the API call
42
+ def retrieve_location_settings(location_id:)
43
+ new_api_call_builder
44
+ .request(new_request_builder(HttpMethodEnum::GET,
45
+ '/v2/online-checkout/location-settings/{location_id}',
46
+ 'default')
47
+ .template_param(new_parameter(location_id, key: 'location_id')
48
+ .should_encode(true))
49
+ .header_param(new_parameter('application/json', key: 'accept'))
50
+ .auth(Single.new('global')))
51
+ .response(new_response_handler
52
+ .deserializer(APIHelper.method(:json_deserialize))
53
+ .is_api_response(true)
54
+ .convertor(ApiResponse.method(:create)))
55
+ .execute
56
+ end
57
+
58
+ # Updates the location-level settings for a Square-hosted checkout page.
59
+ # @param [String] location_id Required parameter: The ID of the location for
60
+ # which to retrieve settings.
61
+ # @param [UpdateLocationSettingsRequest] body Required parameter: An object
62
+ # containing the fields to POST for the request. See the corresponding
63
+ # object definition for field details.
64
+ # @return [UpdateLocationSettingsResponse Hash] response from the API call
65
+ def update_location_settings(location_id:,
66
+ body:)
67
+ new_api_call_builder
68
+ .request(new_request_builder(HttpMethodEnum::PUT,
69
+ '/v2/online-checkout/location-settings/{location_id}',
70
+ 'default')
71
+ .template_param(new_parameter(location_id, key: 'location_id')
72
+ .should_encode(true))
73
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
74
+ .body_param(new_parameter(body))
75
+ .header_param(new_parameter('application/json', key: 'accept'))
76
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
77
+ .auth(Single.new('global')))
78
+ .response(new_response_handler
79
+ .deserializer(APIHelper.method(:json_deserialize))
80
+ .is_api_response(true)
81
+ .convertor(ApiResponse.method(:create)))
82
+ .execute
83
+ end
84
+
85
+ # Retrieves the merchant-level settings for a Square-hosted checkout page.
86
+ # @return [RetrieveMerchantSettingsResponse Hash] response from the API call
87
+ def retrieve_merchant_settings
88
+ new_api_call_builder
89
+ .request(new_request_builder(HttpMethodEnum::GET,
90
+ '/v2/online-checkout/merchant-settings',
91
+ 'default')
92
+ .header_param(new_parameter('application/json', key: 'accept'))
93
+ .auth(Single.new('global')))
94
+ .response(new_response_handler
95
+ .deserializer(APIHelper.method(:json_deserialize))
96
+ .is_api_response(true)
97
+ .convertor(ApiResponse.method(:create)))
98
+ .execute
99
+ end
100
+
101
+ # Updates the merchant-level settings for a Square-hosted checkout page.
102
+ # @param [UpdateMerchantSettingsRequest] body Required parameter: An object
103
+ # containing the fields to POST for the request. See the corresponding
104
+ # object definition for field details.
105
+ # @return [UpdateMerchantSettingsResponse Hash] response from the API call
106
+ def update_merchant_settings(body:)
107
+ new_api_call_builder
108
+ .request(new_request_builder(HttpMethodEnum::PUT,
109
+ '/v2/online-checkout/merchant-settings',
110
+ 'default')
111
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
112
+ .body_param(new_parameter(body))
113
+ .header_param(new_parameter('application/json', key: 'accept'))
114
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
115
+ .auth(Single.new('global')))
116
+ .response(new_response_handler
117
+ .deserializer(APIHelper.method(:json_deserialize))
118
+ .is_api_response(true)
119
+ .convertor(ApiResponse.method(:create)))
120
+ .execute
121
+ end
122
+
38
123
  # Lists all payment links.
39
124
  # @param [String] cursor Optional parameter: A pagination cursor returned by
40
125
  # a previous call to this endpoint. Provide this cursor to retrieve the next
41
126
  # set of results for the original query. If a cursor is not provided, the
42
127
  # endpoint returns the first page of the results. For more information, see
43
- # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
44
- # .
128
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
129
+ # atterns/pagination).
45
130
  # @param [Integer] limit Optional parameter: A limit on the number of
46
131
  # results to return per page. The limit is advisory and the implementation
47
132
  # might return more or less results. If the supplied limit is negative,
@@ -83,6 +83,109 @@ module Square
83
83
  .execute
84
84
  end
85
85
 
86
+ # Creates multiple [customer profiles]($m/Customer) for a business.
87
+ # This endpoint takes a map of individual create requests and returns a map
88
+ # of responses.
89
+ # You must provide at least one of the following values in each create
90
+ # request:
91
+ # - `given_name`
92
+ # - `family_name`
93
+ # - `company_name`
94
+ # - `email_address`
95
+ # - `phone_number`
96
+ # @param [BulkCreateCustomersRequest] body Required parameter: An object
97
+ # containing the fields to POST for the request. See the corresponding
98
+ # object definition for field details.
99
+ # @return [BulkCreateCustomersResponse Hash] response from the API call
100
+ def bulk_create_customers(body:)
101
+ new_api_call_builder
102
+ .request(new_request_builder(HttpMethodEnum::POST,
103
+ '/v2/customers/bulk-create',
104
+ 'default')
105
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
106
+ .body_param(new_parameter(body))
107
+ .header_param(new_parameter('application/json', key: 'accept'))
108
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
109
+ .auth(Single.new('global')))
110
+ .response(new_response_handler
111
+ .deserializer(APIHelper.method(:json_deserialize))
112
+ .is_api_response(true)
113
+ .convertor(ApiResponse.method(:create)))
114
+ .execute
115
+ end
116
+
117
+ # Deletes multiple customer profiles.
118
+ # The endpoint takes a list of customer IDs and returns a map of responses.
119
+ # @param [BulkDeleteCustomersRequest] body Required parameter: An object
120
+ # containing the fields to POST for the request. See the corresponding
121
+ # object definition for field details.
122
+ # @return [BulkDeleteCustomersResponse Hash] response from the API call
123
+ def bulk_delete_customers(body:)
124
+ new_api_call_builder
125
+ .request(new_request_builder(HttpMethodEnum::POST,
126
+ '/v2/customers/bulk-delete',
127
+ 'default')
128
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
129
+ .body_param(new_parameter(body))
130
+ .header_param(new_parameter('application/json', key: 'accept'))
131
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
132
+ .auth(Single.new('global')))
133
+ .response(new_response_handler
134
+ .deserializer(APIHelper.method(:json_deserialize))
135
+ .is_api_response(true)
136
+ .convertor(ApiResponse.method(:create)))
137
+ .execute
138
+ end
139
+
140
+ # Retrieves multiple customer profiles.
141
+ # This endpoint takes a list of customer IDs and returns a map of responses.
142
+ # @param [BulkRetrieveCustomersRequest] body Required parameter: An object
143
+ # containing the fields to POST for the request. See the corresponding
144
+ # object definition for field details.
145
+ # @return [BulkRetrieveCustomersResponse Hash] response from the API call
146
+ def bulk_retrieve_customers(body:)
147
+ new_api_call_builder
148
+ .request(new_request_builder(HttpMethodEnum::POST,
149
+ '/v2/customers/bulk-retrieve',
150
+ 'default')
151
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
152
+ .body_param(new_parameter(body))
153
+ .header_param(new_parameter('application/json', key: 'accept'))
154
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
155
+ .auth(Single.new('global')))
156
+ .response(new_response_handler
157
+ .deserializer(APIHelper.method(:json_deserialize))
158
+ .is_api_response(true)
159
+ .convertor(ApiResponse.method(:create)))
160
+ .execute
161
+ end
162
+
163
+ # Updates multiple customer profiles.
164
+ # This endpoint takes a map of individual update requests and returns a map
165
+ # of responses.
166
+ # You cannot use this endpoint to change cards on file. To make changes, use
167
+ # the [Cards API]($e/Cards) or [Gift Cards API]($e/GiftCards).
168
+ # @param [BulkUpdateCustomersRequest] body Required parameter: An object
169
+ # containing the fields to POST for the request. See the corresponding
170
+ # object definition for field details.
171
+ # @return [BulkUpdateCustomersResponse Hash] response from the API call
172
+ def bulk_update_customers(body:)
173
+ new_api_call_builder
174
+ .request(new_request_builder(HttpMethodEnum::POST,
175
+ '/v2/customers/bulk-update',
176
+ 'default')
177
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
178
+ .body_param(new_parameter(body))
179
+ .header_param(new_parameter('application/json', key: 'accept'))
180
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
181
+ .auth(Single.new('global')))
182
+ .response(new_response_handler
183
+ .deserializer(APIHelper.method(:json_deserialize))
184
+ .is_api_response(true)
185
+ .convertor(ApiResponse.method(:create)))
186
+ .execute
187
+ end
188
+
86
189
  # Searches the customer profiles associated with a Square account using one
87
190
  # or more supported query filters.
88
191
  # Calling `SearchCustomers` without any explicit query filter returns all
@@ -117,12 +220,6 @@ module Square
117
220
 
118
221
  # Deletes a customer profile from a business. This operation also unlinks
119
222
  # any associated cards on file.
120
- # As a best practice, include the `version` field in the request to enable
121
- # [optimistic
122
- # concurrency](https://developer.squareup.com/docs/build-basics/common-api-p
123
- # atterns/optimistic-concurrency) control.
124
- # If included, the value must be set to the current version of the customer
125
- # profile.
126
223
  # To delete a customer profile that was created by merging existing
127
224
  # profiles, you must use the ID of the newly created profile.
128
225
  # @param [String] customer_id Required parameter: The ID of the customer to
@@ -177,14 +274,7 @@ module Square
177
274
  # Updates a customer profile. This endpoint supports sparse updates, so only
178
275
  # new or changed fields are required in the request.
179
276
  # To add or update a field, specify the new value. To remove a field,
180
- # specify `null` and include the `X-Clear-Null` header set to `true`
181
- # (recommended) or specify an empty string (string fields only).
182
- # As a best practice, include the `version` field in the request to enable
183
- # [optimistic
184
- # concurrency](https://developer.squareup.com/docs/build-basics/common-api-p
185
- # atterns/optimistic-concurrency) control.
186
- # If included, the value must be set to the current version of the customer
187
- # profile.
277
+ # specify `null`.
188
278
  # To update a customer profile that was created by merging existing
189
279
  # profiles, you must use the ID of the newly created profile.
190
280
  # You cannot use this endpoint to change cards on file. To make changes, use
@@ -171,6 +171,71 @@ module Square
171
171
  .execute
172
172
  end
173
173
 
174
+ # Uploads a file and attaches it to an invoice. This endpoint accepts HTTP
175
+ # multipart/form-data file uploads
176
+ # with a JSON `request` part and a `file` part. The `file` part must be a
177
+ # `readable stream` that contains a file
178
+ # in a supported format: GIF, JPEG, PNG, TIFF, BMP, or PDF.
179
+ # Invoices can have up to 10 attachments with a total file size of 25 MB.
180
+ # Attachments can be added only to invoices
181
+ # in the `DRAFT`, `SCHEDULED`, `UNPAID`, or `PARTIALLY_PAID` state.
182
+ # @param [String] invoice_id Required parameter: The ID of the
183
+ # [invoice](entity:Invoice) to attach the file to.
184
+ # @param [CreateInvoiceAttachmentRequest] request Optional parameter:
185
+ # Represents a
186
+ # [CreateInvoiceAttachment]($e/Invoices/CreateInvoiceAttachment) request.
187
+ # @param [File | UploadIO] image_file Optional parameter: Example:
188
+ # @return [CreateInvoiceAttachmentResponse Hash] response from the API call
189
+ def create_invoice_attachment(invoice_id:,
190
+ request: nil,
191
+ image_file: nil)
192
+ new_api_call_builder
193
+ .request(new_request_builder(HttpMethodEnum::POST,
194
+ '/v2/invoices/{invoice_id}/attachments',
195
+ 'default')
196
+ .template_param(new_parameter(invoice_id, key: 'invoice_id')
197
+ .should_encode(true))
198
+ .multipart_param(new_parameter(StringIO.new(request.to_json), key: 'request')
199
+ .default_content_type('application/json; charset=utf-8'))
200
+ .multipart_param(new_parameter(image_file, key: 'image_file')
201
+ .default_content_type('image/jpeg'))
202
+ .header_param(new_parameter('application/json', key: 'accept'))
203
+ .auth(Single.new('global')))
204
+ .response(new_response_handler
205
+ .deserializer(APIHelper.method(:json_deserialize))
206
+ .is_api_response(true)
207
+ .convertor(ApiResponse.method(:create)))
208
+ .execute
209
+ end
210
+
211
+ # Removes an attachment from an invoice and permanently deletes the file.
212
+ # Attachments can be removed only
213
+ # from invoices in the `DRAFT`, `SCHEDULED`, `UNPAID`, or `PARTIALLY_PAID`
214
+ # state.
215
+ # @param [String] invoice_id Required parameter: The ID of the
216
+ # [invoice](entity:Invoice) to delete the attachment from.
217
+ # @param [String] attachment_id Required parameter: The ID of the
218
+ # [attachment](entity:InvoiceAttachment) to delete.
219
+ # @return [DeleteInvoiceAttachmentResponse Hash] response from the API call
220
+ def delete_invoice_attachment(invoice_id:,
221
+ attachment_id:)
222
+ new_api_call_builder
223
+ .request(new_request_builder(HttpMethodEnum::DELETE,
224
+ '/v2/invoices/{invoice_id}/attachments/{attachment_id}',
225
+ 'default')
226
+ .template_param(new_parameter(invoice_id, key: 'invoice_id')
227
+ .should_encode(true))
228
+ .template_param(new_parameter(attachment_id, key: 'attachment_id')
229
+ .should_encode(true))
230
+ .header_param(new_parameter('application/json', key: 'accept'))
231
+ .auth(Single.new('global')))
232
+ .response(new_response_handler
233
+ .deserializer(APIHelper.method(:json_deserialize))
234
+ .is_api_response(true)
235
+ .convertor(ApiResponse.method(:create)))
236
+ .execute
237
+ end
238
+
174
239
  # Cancels an invoice. The seller cannot collect payments for
175
240
  # the canceled invoice.
176
241
  # You cannot cancel an invoice in the `DRAFT` state or in a terminal state:
@@ -211,9 +276,13 @@ module Square
211
276
  # The invoice `status` also changes from `DRAFT` to a status
212
277
  # based on the invoice configuration. For example, the status changes to
213
278
  # `UNPAID` if
214
- # Square emails the invoice or `PARTIALLY_PAID` if Square charge a card on
279
+ # Square emails the invoice or `PARTIALLY_PAID` if Square charges a card on
215
280
  # file for a portion of the
216
281
  # invoice amount.
282
+ # In addition to the required `ORDERS_WRITE` and `INVOICES_WRITE`
283
+ # permissions, `CUSTOMERS_READ`
284
+ # and `PAYMENTS_WRITE` are required when publishing invoices configured for
285
+ # card-on-file payments.
217
286
  # @param [String] invoice_id Required parameter: The ID of the invoice to
218
287
  # publish.
219
288
  # @param [PublishInvoiceRequest] body Required parameter: An object
@@ -183,19 +183,20 @@ module Square
183
183
  end
184
184
 
185
185
  # Creates a new `Shift`.
186
- # A `Shift` represents a complete workday for a single employee.
186
+ # A `Shift` represents a complete workday for a single team member.
187
187
  # You must provide the following values in your request to this
188
188
  # endpoint:
189
189
  # - `location_id`
190
- # - `employee_id`
190
+ # - `team_member_id`
191
191
  # - `start_at`
192
192
  # An attempt to create a new `Shift` can result in a `BAD_REQUEST` error
193
193
  # when:
194
- # - The `status` of the new `Shift` is `OPEN` and the employee has another
194
+ # - The `status` of the new `Shift` is `OPEN` and the team member has
195
+ # another
195
196
  # shift with an `OPEN` status.
196
197
  # - The `start_at` date is in the future.
197
- # - The `start_at` or `end_at` date overlaps another shift for the same
198
- # employee.
198
+ # - The `start_at` or `end_at` date overlaps another shift for the same team
199
+ # member.
199
200
  # - The `Break` instances are set in the request and a break `start_at`
200
201
  # is before the `Shift.start_at`, a break `end_at` is after
201
202
  # the `Shift.end_at`, or both.
@@ -222,17 +223,17 @@ module Square
222
223
 
223
224
  # Returns a paginated list of `Shift` records for a business.
224
225
  # The list to be returned can be filtered by:
225
- # - Location IDs.
226
- # - Employee IDs.
227
- # - Shift status (`OPEN` and `CLOSED`).
228
- # - Shift start.
229
- # - Shift end.
230
- # - Workday details.
226
+ # - Location IDs
227
+ # - Team member IDs
228
+ # - Shift status (`OPEN` or `CLOSED`)
229
+ # - Shift start
230
+ # - Shift end
231
+ # - Workday details
231
232
  # The list can be sorted by:
232
- # - `start_at`.
233
- # - `end_at`.
234
- # - `created_at`.
235
- # - `updated_at`.
233
+ # - `START_AT`
234
+ # - `END_AT`
235
+ # - `CREATED_AT`
236
+ # - `UPDATED_AT`
236
237
  # @param [SearchShiftsRequest] body Required parameter: An object containing
237
238
  # the fields to POST for the request. See the corresponding object
238
239
  # definition for field details.
@@ -355,7 +356,7 @@ module Square
355
356
  .execute
356
357
  end
357
358
 
358
- # Returns a single `TeamMemberWage` specified by `id `.
359
+ # Returns a single `TeamMemberWage` specified by `id`.
359
360
  # @param [String] id Required parameter: The UUID for the `TeamMemberWage`
360
361
  # being retrieved.
361
362
  # @return [GetTeamMemberWageResponse Hash] response from the API call
@@ -3,7 +3,8 @@ module Square
3
3
  class LocationsApi < BaseApi
4
4
  # Provides details about all of the seller's
5
5
  # [locations](https://developer.squareup.com/docs/locations-api),
6
- # including those with an inactive status.
6
+ # including those with an inactive status. Locations are listed
7
+ # alphabetically by `name`.
7
8
  # @return [ListLocationsResponse Hash] response from the API call
8
9
  def list_locations
9
10
  new_api_call_builder
@@ -94,7 +94,7 @@ module Square
94
94
  # Actions](https://developer.squareup.com/docs/terminal-api/advanced-feature
95
95
  # s/custom-workflows/link-and-dismiss-actions) for more details.
96
96
  # @param [String] action_id Required parameter: Unique ID for the
97
- # `TerminalAction` associated with the waiting dialog to be dismissed.
97
+ # `TerminalAction` associated with the action to be dismissed.
98
98
  # @return [DismissTerminalActionResponse Hash] response from the API call
99
99
  def dismiss_terminal_action(action_id:)
100
100
  new_api_call_builder
@@ -203,6 +203,27 @@ module Square
203
203
  .execute
204
204
  end
205
205
 
206
+ # Dismisses a Terminal checkout request if the status and type of the
207
+ # request permits it.
208
+ # @param [String] checkout_id Required parameter: Unique ID for the
209
+ # `TerminalCheckout` associated with the checkout to be dismissed.
210
+ # @return [DismissTerminalCheckoutResponse Hash] response from the API call
211
+ def dismiss_terminal_checkout(checkout_id:)
212
+ new_api_call_builder
213
+ .request(new_request_builder(HttpMethodEnum::POST,
214
+ '/v2/terminals/checkouts/{checkout_id}/dismiss',
215
+ 'default')
216
+ .template_param(new_parameter(checkout_id, key: 'checkout_id')
217
+ .should_encode(true))
218
+ .header_param(new_parameter('application/json', key: 'accept'))
219
+ .auth(Single.new('global')))
220
+ .response(new_response_handler
221
+ .deserializer(APIHelper.method(:json_deserialize))
222
+ .is_api_response(true)
223
+ .convertor(ApiResponse.method(:create)))
224
+ .execute
225
+ end
226
+
206
227
  # Creates a request to refund an Interac payment completed on a Square
207
228
  # Terminal. Refunds for Interac payments on a Square Terminal are supported
208
229
  # only for Interac debit cards in Canada. Other refunds for Terminal
@@ -294,5 +315,26 @@ module Square
294
315
  .convertor(ApiResponse.method(:create)))
295
316
  .execute
296
317
  end
318
+
319
+ # Dismisses a Terminal refund request if the status and type of the request
320
+ # permits it.
321
+ # @param [String] terminal_refund_id Required parameter: Unique ID for the
322
+ # `TerminalRefund` associated with the refund to be dismissed.
323
+ # @return [DismissTerminalRefundResponse Hash] response from the API call
324
+ def dismiss_terminal_refund(terminal_refund_id:)
325
+ new_api_call_builder
326
+ .request(new_request_builder(HttpMethodEnum::POST,
327
+ '/v2/terminals/refunds/{terminal_refund_id}/dismiss',
328
+ 'default')
329
+ .template_param(new_parameter(terminal_refund_id, key: 'terminal_refund_id')
330
+ .should_encode(true))
331
+ .header_param(new_parameter('application/json', key: 'accept'))
332
+ .auth(Single.new('global')))
333
+ .response(new_response_handler
334
+ .deserializer(APIHelper.method(:json_deserialize))
335
+ .is_api_response(true)
336
+ .convertor(ApiResponse.method(:create)))
337
+ .execute
338
+ end
297
339
  end
298
340
  end
@@ -98,284 +98,5 @@ module Square
98
98
  .convertor(ApiResponse.method(:create)))
99
99
  .execute
100
100
  end
101
-
102
- # Provides summary information for all payments taken for a given
103
- # Square account during a date range. Date ranges cannot exceed 1 year in
104
- # length. See Date ranges for details of inclusive and exclusive dates.
105
- # *Note**: Details for payments processed with Square Point of Sale while
106
- # in offline mode may not be transmitted to Square for up to 72 hours.
107
- # Offline payments have a `created_at` value that reflects the time the
108
- # payment was originally processed, not the time it was subsequently
109
- # transmitted to Square. Consequently, the ListPayments endpoint might
110
- # list an offline payment chronologically between online payments that
111
- # were seen in a previous request.
112
- # @param [String] location_id Required parameter: The ID of the location to
113
- # list payments for. If you specify me, this endpoint returns payments
114
- # aggregated from all of the business's locations.
115
- # @param [SortOrder] order Optional parameter: The order in which payments
116
- # are listed in the response.
117
- # @param [String] begin_time Optional parameter: The beginning of the
118
- # requested reporting period, in ISO 8601 format. If this value is before
119
- # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
120
- # Default value: The current time minus one year.
121
- # @param [String] end_time Optional parameter: The end of the requested
122
- # reporting period, in ISO 8601 format. If this value is more than one year
123
- # greater than begin_time, this endpoint returns an error. Default value:
124
- # The current time.
125
- # @param [Integer] limit Optional parameter: The maximum number of payments
126
- # to return in a single response. This value cannot exceed 200.
127
- # @param [String] batch_token Optional parameter: A pagination cursor to
128
- # retrieve the next set of results for your original query to the
129
- # endpoint.
130
- # @param [TrueClass | FalseClass] include_partial Optional parameter:
131
- # Indicates whether or not to include partial payments in the response.
132
- # Partial payments will have the tenders collected so far, but the
133
- # itemizations will be empty until the payment is completed.
134
- # @return [Array[V1Payment] Hash] response from the API call
135
- def v1_list_payments(location_id:,
136
- order: nil,
137
- begin_time: nil,
138
- end_time: nil,
139
- limit: nil,
140
- batch_token: nil,
141
- include_partial: false)
142
- warn 'Endpoint v1_list_payments in V1TransactionsApi is deprecated'
143
- new_api_call_builder
144
- .request(new_request_builder(HttpMethodEnum::GET,
145
- '/v1/{location_id}/payments',
146
- 'default')
147
- .template_param(new_parameter(location_id, key: 'location_id')
148
- .should_encode(true))
149
- .query_param(new_parameter(order, key: 'order'))
150
- .query_param(new_parameter(begin_time, key: 'begin_time'))
151
- .query_param(new_parameter(end_time, key: 'end_time'))
152
- .query_param(new_parameter(limit, key: 'limit'))
153
- .query_param(new_parameter(batch_token, key: 'batch_token'))
154
- .query_param(new_parameter(include_partial, key: 'include_partial'))
155
- .header_param(new_parameter('application/json', key: 'accept'))
156
- .auth(Single.new('global')))
157
- .response(new_response_handler
158
- .deserializer(APIHelper.method(:json_deserialize))
159
- .is_api_response(true)
160
- .convertor(ApiResponse.method(:create))
161
- .is_response_array(true))
162
- .execute
163
- end
164
-
165
- # Provides comprehensive information for a single payment.
166
- # @param [String] location_id Required parameter: The ID of the payment's
167
- # associated location.
168
- # @param [String] payment_id Required parameter: The Square-issued payment
169
- # ID. payment_id comes from Payment objects returned by the List Payments
170
- # endpoint, Settlement objects returned by the List Settlements endpoint, or
171
- # Refund objects returned by the List Refunds endpoint.
172
- # @return [V1Payment Hash] response from the API call
173
- def v1_retrieve_payment(location_id:,
174
- payment_id:)
175
- warn 'Endpoint v1_retrieve_payment in V1TransactionsApi is deprecated'
176
- new_api_call_builder
177
- .request(new_request_builder(HttpMethodEnum::GET,
178
- '/v1/{location_id}/payments/{payment_id}',
179
- 'default')
180
- .template_param(new_parameter(location_id, key: 'location_id')
181
- .should_encode(true))
182
- .template_param(new_parameter(payment_id, key: 'payment_id')
183
- .should_encode(true))
184
- .header_param(new_parameter('application/json', key: 'accept'))
185
- .auth(Single.new('global')))
186
- .response(new_response_handler
187
- .deserializer(APIHelper.method(:json_deserialize))
188
- .is_api_response(true)
189
- .convertor(ApiResponse.method(:create)))
190
- .execute
191
- end
192
-
193
- # Provides the details for all refunds initiated by a merchant or any of the
194
- # merchant's mobile staff during a date range. Date ranges cannot exceed one
195
- # year in length.
196
- # @param [String] location_id Required parameter: The ID of the location to
197
- # list refunds for.
198
- # @param [SortOrder] order Optional parameter: The order in which payments
199
- # are listed in the response.
200
- # @param [String] begin_time Optional parameter: The beginning of the
201
- # requested reporting period, in ISO 8601 format. If this value is before
202
- # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
203
- # Default value: The current time minus one year.
204
- # @param [String] end_time Optional parameter: The end of the requested
205
- # reporting period, in ISO 8601 format. If this value is more than one year
206
- # greater than begin_time, this endpoint returns an error. Default value:
207
- # The current time.
208
- # @param [Integer] limit Optional parameter: The approximate number of
209
- # refunds to return in a single response. Default: 100. Max: 200. Response
210
- # may contain more results than the prescribed limit when refunds are made
211
- # simultaneously to multiple tenders in a payment or when refunds are
212
- # generated in an exchange to account for the value of returned goods.
213
- # @param [String] batch_token Optional parameter: A pagination cursor to
214
- # retrieve the next set of results for your original query to the
215
- # endpoint.
216
- # @return [Array[V1Refund] Hash] response from the API call
217
- def v1_list_refunds(location_id:,
218
- order: nil,
219
- begin_time: nil,
220
- end_time: nil,
221
- limit: nil,
222
- batch_token: nil)
223
- warn 'Endpoint v1_list_refunds in V1TransactionsApi is deprecated'
224
- new_api_call_builder
225
- .request(new_request_builder(HttpMethodEnum::GET,
226
- '/v1/{location_id}/refunds',
227
- 'default')
228
- .template_param(new_parameter(location_id, key: 'location_id')
229
- .should_encode(true))
230
- .query_param(new_parameter(order, key: 'order'))
231
- .query_param(new_parameter(begin_time, key: 'begin_time'))
232
- .query_param(new_parameter(end_time, key: 'end_time'))
233
- .query_param(new_parameter(limit, key: 'limit'))
234
- .query_param(new_parameter(batch_token, key: 'batch_token'))
235
- .header_param(new_parameter('application/json', key: 'accept'))
236
- .auth(Single.new('global')))
237
- .response(new_response_handler
238
- .deserializer(APIHelper.method(:json_deserialize))
239
- .is_api_response(true)
240
- .convertor(ApiResponse.method(:create))
241
- .is_response_array(true))
242
- .execute
243
- end
244
-
245
- # Issues a refund for a previously processed payment. You must issue
246
- # a refund within 60 days of the associated payment.
247
- # You cannot issue a partial refund for a split tender payment. You must
248
- # instead issue a full or partial refund for a particular tender, by
249
- # providing the applicable tender id to the V1CreateRefund endpoint.
250
- # Issuing a full refund for a split tender payment refunds all tenders
251
- # associated with the payment.
252
- # Issuing a refund for a card payment is not reversible. For development
253
- # purposes, you can create fake cash payments in Square Point of Sale and
254
- # refund them.
255
- # @param [String] location_id Required parameter: The ID of the original
256
- # payment's associated location.
257
- # @param [V1CreateRefundRequest] body Required parameter: An object
258
- # containing the fields to POST for the request. See the corresponding
259
- # object definition for field details.
260
- # @return [V1Refund Hash] response from the API call
261
- def v1_create_refund(location_id:,
262
- body:)
263
- warn 'Endpoint v1_create_refund in V1TransactionsApi is deprecated'
264
- new_api_call_builder
265
- .request(new_request_builder(HttpMethodEnum::POST,
266
- '/v1/{location_id}/refunds',
267
- 'default')
268
- .template_param(new_parameter(location_id, key: 'location_id')
269
- .should_encode(true))
270
- .header_param(new_parameter('application/json', key: 'Content-Type'))
271
- .body_param(new_parameter(body))
272
- .header_param(new_parameter('application/json', key: 'accept'))
273
- .body_serializer(proc do |param| param.to_json unless param.nil? end)
274
- .auth(Single.new('global')))
275
- .response(new_response_handler
276
- .deserializer(APIHelper.method(:json_deserialize))
277
- .is_api_response(true)
278
- .convertor(ApiResponse.method(:create)))
279
- .execute
280
- end
281
-
282
- # Provides summary information for all deposits and withdrawals
283
- # initiated by Square to a linked bank account during a date range. Date
284
- # ranges cannot exceed one year in length.
285
- # *Note**: the ListSettlements endpoint does not provide entry
286
- # information.
287
- # @param [String] location_id Required parameter: The ID of the location to
288
- # list settlements for. If you specify me, this endpoint returns settlements
289
- # aggregated from all of the business's locations.
290
- # @param [SortOrder] order Optional parameter: The order in which
291
- # settlements are listed in the response.
292
- # @param [String] begin_time Optional parameter: The beginning of the
293
- # requested reporting period, in ISO 8601 format. If this value is before
294
- # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
295
- # Default value: The current time minus one year.
296
- # @param [String] end_time Optional parameter: The end of the requested
297
- # reporting period, in ISO 8601 format. If this value is more than one year
298
- # greater than begin_time, this endpoint returns an error. Default value:
299
- # The current time.
300
- # @param [Integer] limit Optional parameter: The maximum number of
301
- # settlements to return in a single response. This value cannot exceed
302
- # 200.
303
- # @param [V1ListSettlementsRequestStatus] status Optional parameter: Provide
304
- # this parameter to retrieve only settlements with a particular status (SENT
305
- # or FAILED).
306
- # @param [String] batch_token Optional parameter: A pagination cursor to
307
- # retrieve the next set of results for your original query to the
308
- # endpoint.
309
- # @return [Array[V1Settlement] Hash] response from the API call
310
- def v1_list_settlements(location_id:,
311
- order: nil,
312
- begin_time: nil,
313
- end_time: nil,
314
- limit: nil,
315
- status: nil,
316
- batch_token: nil)
317
- warn 'Endpoint v1_list_settlements in V1TransactionsApi is deprecated'
318
- new_api_call_builder
319
- .request(new_request_builder(HttpMethodEnum::GET,
320
- '/v1/{location_id}/settlements',
321
- 'default')
322
- .template_param(new_parameter(location_id, key: 'location_id')
323
- .should_encode(true))
324
- .query_param(new_parameter(order, key: 'order'))
325
- .query_param(new_parameter(begin_time, key: 'begin_time'))
326
- .query_param(new_parameter(end_time, key: 'end_time'))
327
- .query_param(new_parameter(limit, key: 'limit'))
328
- .query_param(new_parameter(status, key: 'status'))
329
- .query_param(new_parameter(batch_token, key: 'batch_token'))
330
- .header_param(new_parameter('application/json', key: 'accept'))
331
- .auth(Single.new('global')))
332
- .response(new_response_handler
333
- .deserializer(APIHelper.method(:json_deserialize))
334
- .is_api_response(true)
335
- .convertor(ApiResponse.method(:create))
336
- .is_response_array(true))
337
- .execute
338
- end
339
-
340
- # Provides comprehensive information for a single settlement.
341
- # The returned `Settlement` objects include an `entries` field that lists
342
- # the transactions that contribute to the settlement total. Most
343
- # settlement entries correspond to a payment payout, but settlement
344
- # entries are also generated for less common events, like refunds, manual
345
- # adjustments, or chargeback holds.
346
- # Square initiates its regular deposits as indicated in the
347
- # [Deposit Options with
348
- # Square](https://squareup.com/help/us/en/article/3807)
349
- # help article. Details for a regular deposit are usually not available
350
- # from Connect API endpoints before 10 p.m. PST the same day.
351
- # Square does not know when an initiated settlement **completes**, only
352
- # whether it has failed. A completed settlement is typically reflected in
353
- # a bank account within 3 business days, but in exceptional cases it may
354
- # take longer.
355
- # @param [String] location_id Required parameter: The ID of the
356
- # settlements's associated location.
357
- # @param [String] settlement_id Required parameter: The settlement's
358
- # Square-issued ID. You obtain this value from Settlement objects returned
359
- # by the List Settlements endpoint.
360
- # @return [V1Settlement Hash] response from the API call
361
- def v1_retrieve_settlement(location_id:,
362
- settlement_id:)
363
- warn 'Endpoint v1_retrieve_settlement in V1TransactionsApi is deprecated'
364
- new_api_call_builder
365
- .request(new_request_builder(HttpMethodEnum::GET,
366
- '/v1/{location_id}/settlements/{settlement_id}',
367
- 'default')
368
- .template_param(new_parameter(location_id, key: 'location_id')
369
- .should_encode(true))
370
- .template_param(new_parameter(settlement_id, key: 'settlement_id')
371
- .should_encode(true))
372
- .header_param(new_parameter('application/json', key: 'accept'))
373
- .auth(Single.new('global')))
374
- .response(new_response_handler
375
- .deserializer(APIHelper.method(:json_deserialize))
376
- .is_api_response(true)
377
- .convertor(ApiResponse.method(:create)))
378
- .execute
379
- end
380
101
  end
381
102
  end
data/lib/square/client.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  module Square
2
2
  # square client class.
3
3
  class Client
4
+ include CoreLibrary
4
5
  attr_reader :config, :auth_managers
5
6
 
6
7
  def sdk_version
7
- '33.0.0.20231018'
8
+ '36.1.0.20240320'
8
9
  end
9
10
 
10
11
  def square_version
@@ -261,28 +262,29 @@ module Square
261
262
  @webhook_subscriptions ||= WebhookSubscriptionsApi.new @global_configuration
262
263
  end
263
264
 
264
- def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
265
- max_retries: 0, retry_interval: 1, backoff_factor: 2,
266
- retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
267
- retry_methods: %i[get put], http_callback: nil,
268
- environment: 'production',
269
- custom_url: 'https://connect.squareup.com', access_token: '',
270
- square_version: '2023-10-18', user_agent_detail: '',
271
- additional_headers: {}, config: nil)
265
+ def initialize(
266
+ connection: nil, adapter: :net_http_persistent, timeout: 60,
267
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
268
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
269
+ retry_methods: %i[get put], http_callback: nil, environment: 'production',
270
+ custom_url: 'https://connect.squareup.com', access_token: nil,
271
+ bearer_auth_credentials: nil, square_version: '2024-03-20',
272
+ user_agent_detail: '', additional_headers: {}, config: nil
273
+ )
272
274
  @config = if config.nil?
273
- Configuration.new(connection: connection, adapter: adapter,
274
- timeout: timeout, max_retries: max_retries,
275
- retry_interval: retry_interval,
276
- backoff_factor: backoff_factor,
277
- retry_statuses: retry_statuses,
278
- retry_methods: retry_methods,
279
- http_callback: http_callback,
280
- environment: environment,
281
- custom_url: custom_url,
282
- access_token: access_token,
283
- square_version: square_version,
284
- user_agent_detail: user_agent_detail,
285
- additional_headers: additional_headers)
275
+ Configuration.new(
276
+ connection: connection, adapter: adapter, timeout: timeout,
277
+ max_retries: max_retries, retry_interval: retry_interval,
278
+ backoff_factor: backoff_factor,
279
+ retry_statuses: retry_statuses,
280
+ retry_methods: retry_methods, http_callback: http_callback,
281
+ environment: environment, custom_url: custom_url,
282
+ access_token: access_token,
283
+ bearer_auth_credentials: bearer_auth_credentials,
284
+ square_version: square_version,
285
+ user_agent_detail: user_agent_detail,
286
+ additional_headers: additional_headers
287
+ )
286
288
  else
287
289
  config
288
290
  end
@@ -311,8 +313,8 @@ module Square
311
313
  def initialize_auth_managers(global_config)
312
314
  @auth_managers = {}
313
315
  http_client_config = global_config.client_configuration
314
- ['global'].each { |auth| @auth_managers[auth] = nil }
315
- @auth_managers['global'] = OAuth2.new(http_client_config.access_token)
316
+ %w[global].each { |auth| @auth_managers[auth] = nil }
317
+ @auth_managers['global'] = OAuth2.new(http_client_config.bearer_auth_credentials)
316
318
  end
317
319
  end
318
320
  end
@@ -2,8 +2,13 @@ module Square
2
2
  # All configuration including auth info and base URI for the API access
3
3
  # are configured in this class.
4
4
  class Configuration < CoreLibrary::HttpClientConfiguration
5
+ def access_token
6
+ @bearer_auth_credentials.access_token
7
+ end
8
+
5
9
  # The attribute readers for properties.
6
- attr_reader :environment, :custom_url, :access_token, :square_version, :user_agent_detail
10
+ attr_reader :environment, :custom_url, :bearer_auth_credentials, :square_version,
11
+ :user_agent_detail
7
12
 
8
13
  def additional_headers
9
14
  @additional_headers.clone
@@ -13,14 +18,15 @@ module Square
13
18
  attr_reader :environments
14
19
  end
15
20
 
16
- def initialize(connection: nil, adapter: :net_http_persistent, timeout: 60,
17
- max_retries: 0, retry_interval: 1, backoff_factor: 2,
18
- retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
19
- retry_methods: %i[get put], http_callback: nil,
20
- environment: 'production',
21
- custom_url: 'https://connect.squareup.com', access_token: '',
22
- square_version: '2023-10-18', user_agent_detail: '',
23
- additional_headers: {})
21
+ def initialize(
22
+ connection: nil, adapter: :net_http_persistent, timeout: 60,
23
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
24
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
25
+ retry_methods: %i[get put], http_callback: nil, environment: 'production',
26
+ custom_url: 'https://connect.squareup.com', access_token: nil,
27
+ bearer_auth_credentials: nil, square_version: '2024-03-20',
28
+ user_agent_detail: '', additional_headers: {}
29
+ )
24
30
 
25
31
  super connection: connection, adapter: adapter, timeout: timeout,
26
32
  max_retries: max_retries, retry_interval: retry_interval,
@@ -42,6 +48,11 @@ module Square
42
48
  # Additional headers to add to each API request
43
49
  @additional_headers = additional_headers.clone
44
50
 
51
+ # Initializing OAuth 2 Bearer token credentials with the provided auth parameters
52
+ @bearer_auth_credentials = create_auth_credentials_object(
53
+ access_token, bearer_auth_credentials
54
+ )
55
+
45
56
  # The Http Client to use for making requests.
46
57
  set_http_client CoreLibrary::FaradayClient.new(self)
47
58
 
@@ -53,8 +64,8 @@ module Square
53
64
  max_retries: nil, retry_interval: nil, backoff_factor: nil,
54
65
  retry_statuses: nil, retry_methods: nil, http_callback: nil,
55
66
  environment: nil, custom_url: nil, access_token: nil,
56
- square_version: nil, user_agent_detail: nil,
57
- additional_headers: nil)
67
+ bearer_auth_credentials: nil, square_version: nil,
68
+ user_agent_detail: nil, additional_headers: nil)
58
69
  connection ||= self.connection
59
70
  adapter ||= self.adapter
60
71
  timeout ||= self.timeout
@@ -66,10 +77,12 @@ module Square
66
77
  http_callback ||= self.http_callback
67
78
  environment ||= self.environment
68
79
  custom_url ||= self.custom_url
69
- access_token ||= self.access_token
70
80
  square_version ||= self.square_version
71
81
  user_agent_detail ||= self.user_agent_detail
72
82
  additional_headers ||= self.additional_headers
83
+ bearer_auth_credentials = create_auth_credentials_object(
84
+ access_token, bearer_auth_credentials || self.bearer_auth_credentials
85
+ )
73
86
 
74
87
  Configuration.new(connection: connection, adapter: adapter,
75
88
  timeout: timeout, max_retries: max_retries,
@@ -78,10 +91,10 @@ module Square
78
91
  retry_statuses: retry_statuses,
79
92
  retry_methods: retry_methods,
80
93
  http_callback: http_callback, environment: environment,
81
- custom_url: custom_url, access_token: access_token,
82
- square_version: square_version,
94
+ custom_url: custom_url, square_version: square_version,
83
95
  user_agent_detail: user_agent_detail,
84
- additional_headers: additional_headers)
96
+ additional_headers: additional_headers,
97
+ bearer_auth_credentials: bearer_auth_credentials)
85
98
  end
86
99
 
87
100
  def get_user_agent(user_agent_detail)
@@ -91,6 +104,21 @@ module Square
91
104
  user_agent_detail
92
105
  end
93
106
 
107
+ def create_auth_credentials_object(access_token, bearer_auth_credentials)
108
+ return bearer_auth_credentials if access_token.nil?
109
+
110
+ warn('The \'access_token\' params are deprecated. Use \'bearer_auth_cred'\
111
+ 'entials\' param instead.')
112
+
113
+ unless bearer_auth_credentials.nil?
114
+ return bearer_auth_credentials.clone_with(
115
+ access_token: access_token
116
+ )
117
+ end
118
+
119
+ BearerAuthCredentials.new(access_token: access_token)
120
+ end
121
+
94
122
  # All the environments the SDK can run in.
95
123
  ENVIRONMENTS = {
96
124
  'production' => {
@@ -20,7 +20,7 @@ module Square
20
20
 
21
21
  @cursor = data.fetch(:cursor, nil)
22
22
  data.reject! { |k| %i[cursor errors].include?(k) }
23
- @data = Struct.new(*data.keys).new(*data.values) if data.keys.any?
23
+ @data = data.keys.any? ? Struct.new(*data.keys).new(*data.values) : nil
24
24
  else
25
25
  @data = data
26
26
  @body = data
@@ -1,6 +1,7 @@
1
1
  module Square
2
2
  # Utility class for OAuth 2 authorization and token management.
3
3
  class OAuth2 < CoreLibrary::HeaderAuth
4
+ include CoreLibrary
4
5
  # Display error message on occurrence of authentication failure.
5
6
  # @returns [String] The oAuth error message.
6
7
  def error_message
@@ -8,12 +9,30 @@ module Square
8
9
  end
9
10
 
10
11
  # Initialization constructor.
11
- def initialize(access_token)
12
+ def initialize(bearer_auth_credentials)
12
13
  auth_params = {}
13
- @_access_token = access_token
14
+ @_access_token = bearer_auth_credentials.access_token unless
15
+ bearer_auth_credentials.nil? || bearer_auth_credentials.access_token.nil?
14
16
  auth_params['Authorization'] = "Bearer #{@_access_token}" unless @_access_token.nil?
15
17
 
16
18
  super auth_params
17
19
  end
18
20
  end
21
+
22
+ # Data class for BearerAuthCredentials.
23
+ class BearerAuthCredentials
24
+ attr_reader :access_token
25
+
26
+ def initialize(access_token:)
27
+ raise ArgumentError, 'access_token cannot be nil' if access_token.nil?
28
+
29
+ @access_token = access_token
30
+ end
31
+
32
+ def clone_with(access_token: nil)
33
+ access_token ||= self.access_token
34
+
35
+ BearerAuthCredentials.new(access_token: access_token)
36
+ end
37
+ end
19
38
  end
data/lib/square.rb CHANGED
@@ -3,9 +3,6 @@ require 'json'
3
3
  require 'apimatic_core_interfaces'
4
4
  require 'apimatic_core'
5
5
  require 'apimatic_faraday_client_adapter'
6
- # rubocop:disable Style/MixinUsage
7
- include CoreLibrary
8
- # rubocop:enable Style/MixinUsage
9
6
 
10
7
  require_relative 'square/api_helper'
11
8
  require_relative 'square/client'
@@ -9,6 +9,7 @@ require_relative '../http_response_catcher'
9
9
  class ApiTestBase < Minitest::Test
10
10
  parallelize_me!
11
11
  include Square
12
+ include CoreLibrary
12
13
 
13
14
  # Create configuration and set any test parameters
14
15
  def create_configuration
@@ -22,6 +23,5 @@ class ApiTestBase < Minitest::Test
22
23
  def setup_class
23
24
  _config = create_configuration
24
25
  @client = Client.new(config: _config)
25
- _auth_managers = @client.auth_managers
26
26
  end
27
27
  end
@@ -9,7 +9,7 @@ class LocationsApiTests < ApiTestBase
9
9
  end
10
10
 
11
11
  # Provides details about all of the seller's [locations](https://developer.squareup.com/docs/locations-api),
12
- #including those with an inactive status.
12
+ #including those with an inactive status. Locations are listed alphabetically by `name`.
13
13
  def test_list_locations
14
14
 
15
15
  # Perform the API call through the SDK function
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: 33.0.0.20231018
4
+ version: 36.1.0.20240320
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: 2023-10-17 00:00:00.000000000 Z
11
+ date: 2024-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apimatic_core_interfaces