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
@@ -0,0 +1,561 @@
1
+ module Square
2
+ # CustomerCustomAttributesApi
3
+ class CustomerCustomAttributesApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Lists the customer-related [custom attribute
9
+ # definitions]($m/CustomAttributeDefinition) that belong to a Square seller
10
+ # account.
11
+ # When all response pages are retrieved, the results include all custom
12
+ # attribute definitions
13
+ # that are visible to the requesting application, including those that are
14
+ # created by other
15
+ # applications and set to `VISIBILITY_READ_ONLY` or
16
+ # `VISIBILITY_READ_WRITE_VALUES`. Note that
17
+ # seller-defined custom attributes (also known as custom fields) are always
18
+ # set to `VISIBILITY_READ_WRITE_VALUES`.
19
+ # @param [Integer] limit Optional parameter: The maximum number of results
20
+ # to return in a single paged response. This limit is advisory. The response
21
+ # might contain more or fewer results. The minimum value is 1 and the
22
+ # maximum value is 100. The default value is 20. For more information, see
23
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
24
+ # atterns/pagination).
25
+ # @param [String] cursor Optional parameter: The cursor returned in the
26
+ # paged response from the previous call to this endpoint. Provide this
27
+ # cursor to retrieve the next page of results for your original request. For
28
+ # more information, see
29
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
30
+ # atterns/pagination).
31
+ # @return [ListCustomerCustomAttributeDefinitionsResponse Hash] response from the API call
32
+ def list_customer_custom_attribute_definitions(limit: nil,
33
+ cursor: nil)
34
+ # Prepare query url.
35
+ _query_builder = config.get_base_uri
36
+ _query_builder << '/v2/customers/custom-attribute-definitions'
37
+ _query_builder = APIHelper.append_url_with_query_parameters(
38
+ _query_builder,
39
+ 'limit' => limit,
40
+ 'cursor' => cursor
41
+ )
42
+ _query_url = APIHelper.clean_url _query_builder
43
+
44
+ # Prepare headers.
45
+ _headers = {
46
+ 'accept' => 'application/json'
47
+ }
48
+
49
+ # Prepare and execute HttpRequest.
50
+ _request = config.http_client.get(
51
+ _query_url,
52
+ headers: _headers
53
+ )
54
+ OAuth2.apply(config, _request)
55
+ _response = execute_request(_request)
56
+
57
+ # Return appropriate response type.
58
+ decoded = APIHelper.json_deserialize(_response.raw_body)
59
+ _errors = APIHelper.map_response(decoded, ['errors'])
60
+ ApiResponse.new(
61
+ _response, data: decoded, errors: _errors
62
+ )
63
+ end
64
+
65
+ # Creates a customer-related [custom attribute
66
+ # definition]($m/CustomAttributeDefinition) for a Square seller account.
67
+ # Use this endpoint to define a custom attribute that can be associated with
68
+ # customer profiles.
69
+ # A custom attribute definition specifies the `key`, `visibility`, `schema`,
70
+ # and other properties
71
+ # for a custom attribute. After the definition is created, you can call
72
+ # [UpsertCustomerCustomAttribute]($e/CustomerCustomAttributes/UpsertCustomer
73
+ # CustomAttribute) or
74
+ # [BulkUpsertCustomerCustomAttributes]($e/CustomerCustomAttributes/BulkUpser
75
+ # tCustomerCustomAttributes)
76
+ # to set the custom attribute for customer profiles in the seller's Customer
77
+ # Directory.
78
+ # Sellers can view all custom attributes in exported customer data,
79
+ # including those set to
80
+ # `VISIBILITY_HIDDEN`.
81
+ # @param [CreateCustomerCustomAttributeDefinitionRequest] body Required
82
+ # parameter: An object containing the fields to POST for the request. See
83
+ # the corresponding object definition for field details.
84
+ # @return [CreateCustomerCustomAttributeDefinitionResponse Hash] response from the API call
85
+ def create_customer_custom_attribute_definition(body:)
86
+ # Prepare query url.
87
+ _query_builder = config.get_base_uri
88
+ _query_builder << '/v2/customers/custom-attribute-definitions'
89
+ _query_url = APIHelper.clean_url _query_builder
90
+
91
+ # Prepare headers.
92
+ _headers = {
93
+ 'accept' => 'application/json',
94
+ 'Content-Type' => 'application/json'
95
+ }
96
+
97
+ # Prepare and execute HttpRequest.
98
+ _request = config.http_client.post(
99
+ _query_url,
100
+ headers: _headers,
101
+ parameters: body.to_json
102
+ )
103
+ OAuth2.apply(config, _request)
104
+ _response = execute_request(_request)
105
+
106
+ # Return appropriate response type.
107
+ decoded = APIHelper.json_deserialize(_response.raw_body)
108
+ _errors = APIHelper.map_response(decoded, ['errors'])
109
+ ApiResponse.new(
110
+ _response, data: decoded, errors: _errors
111
+ )
112
+ end
113
+
114
+ # Deletes a customer-related [custom attribute
115
+ # definition]($m/CustomAttributeDefinition) from a Square seller account.
116
+ # Deleting a custom attribute definition also deletes the corresponding
117
+ # custom attribute from
118
+ # all customer profiles in the seller's Customer Directory.
119
+ # Only the definition owner can delete a custom attribute definition.
120
+ # @param [String] key Required parameter: The key of the custom attribute
121
+ # definition to delete.
122
+ # @return [DeleteCustomerCustomAttributeDefinitionResponse Hash] response from the API call
123
+ def delete_customer_custom_attribute_definition(key:)
124
+ # Prepare query url.
125
+ _query_builder = config.get_base_uri
126
+ _query_builder << '/v2/customers/custom-attribute-definitions/{key}'
127
+ _query_builder = APIHelper.append_url_with_template_parameters(
128
+ _query_builder,
129
+ 'key' => { 'value' => key, 'encode' => true }
130
+ )
131
+ _query_url = APIHelper.clean_url _query_builder
132
+
133
+ # Prepare headers.
134
+ _headers = {
135
+ 'accept' => 'application/json'
136
+ }
137
+
138
+ # Prepare and execute HttpRequest.
139
+ _request = config.http_client.delete(
140
+ _query_url,
141
+ headers: _headers
142
+ )
143
+ OAuth2.apply(config, _request)
144
+ _response = execute_request(_request)
145
+
146
+ # Return appropriate response type.
147
+ decoded = APIHelper.json_deserialize(_response.raw_body)
148
+ _errors = APIHelper.map_response(decoded, ['errors'])
149
+ ApiResponse.new(
150
+ _response, data: decoded, errors: _errors
151
+ )
152
+ end
153
+
154
+ # Retrieves a customer-related [custom attribute
155
+ # definition]($m/CustomAttributeDefinition) from a Square seller account.
156
+ # To retrieve a custom attribute definition created by another application,
157
+ # the `visibility`
158
+ # setting must be `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.
159
+ # Note that seller-defined custom attributes
160
+ # (also known as custom fields) are always set to
161
+ # `VISIBILITY_READ_WRITE_VALUES`.
162
+ # @param [String] key Required parameter: The key of the custom attribute
163
+ # definition to retrieve. If the requesting application is not the
164
+ # definition owner, you must use the qualified key.
165
+ # @param [Integer] version Optional parameter: The current version of the
166
+ # custom attribute definition, which is used for strongly consistent reads
167
+ # to guarantee that you receive the most up-to-date data. When included in
168
+ # the request, Square returns the specified version or a higher version if
169
+ # one exists. If the specified version is higher than the current version,
170
+ # Square returns a `BAD_REQUEST` error.
171
+ # @return [RetrieveCustomerCustomAttributeDefinitionResponse Hash] response from the API call
172
+ def retrieve_customer_custom_attribute_definition(key:,
173
+ version: nil)
174
+ # Prepare query url.
175
+ _query_builder = config.get_base_uri
176
+ _query_builder << '/v2/customers/custom-attribute-definitions/{key}'
177
+ _query_builder = APIHelper.append_url_with_template_parameters(
178
+ _query_builder,
179
+ 'key' => { 'value' => key, 'encode' => true }
180
+ )
181
+ _query_builder = APIHelper.append_url_with_query_parameters(
182
+ _query_builder,
183
+ 'version' => version
184
+ )
185
+ _query_url = APIHelper.clean_url _query_builder
186
+
187
+ # Prepare headers.
188
+ _headers = {
189
+ 'accept' => 'application/json'
190
+ }
191
+
192
+ # Prepare and execute HttpRequest.
193
+ _request = config.http_client.get(
194
+ _query_url,
195
+ headers: _headers
196
+ )
197
+ OAuth2.apply(config, _request)
198
+ _response = execute_request(_request)
199
+
200
+ # Return appropriate response type.
201
+ decoded = APIHelper.json_deserialize(_response.raw_body)
202
+ _errors = APIHelper.map_response(decoded, ['errors'])
203
+ ApiResponse.new(
204
+ _response, data: decoded, errors: _errors
205
+ )
206
+ end
207
+
208
+ # Updates a customer-related [custom attribute
209
+ # definition]($m/CustomAttributeDefinition) for a Square seller account.
210
+ # Use this endpoint to update the following fields: `name`, `description`,
211
+ # `visibility`, or the
212
+ # `schema` for a `Selection` data type.
213
+ # Only the definition owner can update a custom attribute definition. Note
214
+ # that sellers can view
215
+ # all custom attributes in exported customer data, including those set to
216
+ # `VISIBILITY_HIDDEN`.
217
+ # @param [String] key Required parameter: The key of the custom attribute
218
+ # definition to update.
219
+ # @param [UpdateCustomerCustomAttributeDefinitionRequest] body Required
220
+ # parameter: An object containing the fields to POST for the request. See
221
+ # the corresponding object definition for field details.
222
+ # @return [UpdateCustomerCustomAttributeDefinitionResponse Hash] response from the API call
223
+ def update_customer_custom_attribute_definition(key:,
224
+ body:)
225
+ # Prepare query url.
226
+ _query_builder = config.get_base_uri
227
+ _query_builder << '/v2/customers/custom-attribute-definitions/{key}'
228
+ _query_builder = APIHelper.append_url_with_template_parameters(
229
+ _query_builder,
230
+ 'key' => { 'value' => key, 'encode' => true }
231
+ )
232
+ _query_url = APIHelper.clean_url _query_builder
233
+
234
+ # Prepare headers.
235
+ _headers = {
236
+ 'accept' => 'application/json',
237
+ 'Content-Type' => 'application/json'
238
+ }
239
+
240
+ # Prepare and execute HttpRequest.
241
+ _request = config.http_client.put(
242
+ _query_url,
243
+ headers: _headers,
244
+ parameters: body.to_json
245
+ )
246
+ OAuth2.apply(config, _request)
247
+ _response = execute_request(_request)
248
+
249
+ # Return appropriate response type.
250
+ decoded = APIHelper.json_deserialize(_response.raw_body)
251
+ _errors = APIHelper.map_response(decoded, ['errors'])
252
+ ApiResponse.new(
253
+ _response, data: decoded, errors: _errors
254
+ )
255
+ end
256
+
257
+ # Creates or updates [custom attributes]($m/CustomAttribute) for customer
258
+ # profiles as a bulk operation.
259
+ # Use this endpoint to set the value of one or more custom attributes for
260
+ # one or more customer profiles.
261
+ # A custom attribute is based on a custom attribute definition in a Square
262
+ # seller account, which is
263
+ # created using the
264
+ # [CreateCustomerCustomAttributeDefinition]($e/CustomerCustomAttributes/Crea
265
+ # teCustomerCustomAttributeDefinition) endpoint.
266
+ # This `BulkUpsertCustomerCustomAttributes` endpoint accepts a map of 1 to
267
+ # 25 individual upsert
268
+ # requests and returns a map of individual upsert responses. Each upsert
269
+ # request has a unique ID
270
+ # and provides a customer ID and custom attribute. Each upsert response is
271
+ # returned with the ID
272
+ # of the corresponding request.
273
+ # To create or update a custom attribute owned by another application, the
274
+ # `visibility` setting
275
+ # must be `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom
276
+ # attributes
277
+ # (also known as custom fields) are always set to
278
+ # `VISIBILITY_READ_WRITE_VALUES`.
279
+ # @param [BulkUpsertCustomerCustomAttributesRequest] body Required
280
+ # parameter: An object containing the fields to POST for the request. See
281
+ # the corresponding object definition for field details.
282
+ # @return [BulkUpsertCustomerCustomAttributesResponse Hash] response from the API call
283
+ def bulk_upsert_customer_custom_attributes(body:)
284
+ # Prepare query url.
285
+ _query_builder = config.get_base_uri
286
+ _query_builder << '/v2/customers/custom-attributes/bulk-upsert'
287
+ _query_url = APIHelper.clean_url _query_builder
288
+
289
+ # Prepare headers.
290
+ _headers = {
291
+ 'accept' => 'application/json',
292
+ 'Content-Type' => 'application/json'
293
+ }
294
+
295
+ # Prepare and execute HttpRequest.
296
+ _request = config.http_client.post(
297
+ _query_url,
298
+ headers: _headers,
299
+ parameters: body.to_json
300
+ )
301
+ OAuth2.apply(config, _request)
302
+ _response = execute_request(_request)
303
+
304
+ # Return appropriate response type.
305
+ decoded = APIHelper.json_deserialize(_response.raw_body)
306
+ _errors = APIHelper.map_response(decoded, ['errors'])
307
+ ApiResponse.new(
308
+ _response, data: decoded, errors: _errors
309
+ )
310
+ end
311
+
312
+ # Lists the [custom attributes]($m/CustomAttribute) associated with a
313
+ # customer profile.
314
+ # You can use the `with_definitions` query parameter to also retrieve custom
315
+ # attribute definitions
316
+ # in the same call.
317
+ # When all response pages are retrieved, the results include all custom
318
+ # attributes that are
319
+ # visible to the requesting application, including those that are owned by
320
+ # other applications
321
+ # and set to `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.
322
+ # @param [String] customer_id Required parameter: The ID of the target
323
+ # [customer profile]($m/Customer).
324
+ # @param [Integer] limit Optional parameter: The maximum number of results
325
+ # to return in a single paged response. This limit is advisory. The response
326
+ # might contain more or fewer results. The minimum value is 1 and the
327
+ # maximum value is 100. The default value is 20. For more information, see
328
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
329
+ # atterns/pagination).
330
+ # @param [String] cursor Optional parameter: The cursor returned in the
331
+ # paged response from the previous call to this endpoint. Provide this
332
+ # cursor to retrieve the next page of results for your original request. For
333
+ # more information, see
334
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
335
+ # atterns/pagination).
336
+ # @param [TrueClass|FalseClass] with_definitions Optional parameter:
337
+ # Indicates whether to return the [custom attribute
338
+ # definition]($m/CustomAttributeDefinition) in the `definition` field of
339
+ # each custom attribute. Set this parameter to `true` to get the name and
340
+ # description of each custom attribute, information about the data type, or
341
+ # other definition details. The default value is `false`.
342
+ # @return [ListCustomerCustomAttributesResponse Hash] response from the API call
343
+ def list_customer_custom_attributes(customer_id:,
344
+ limit: nil,
345
+ cursor: nil,
346
+ with_definitions: false)
347
+ # Prepare query url.
348
+ _query_builder = config.get_base_uri
349
+ _query_builder << '/v2/customers/{customer_id}/custom-attributes'
350
+ _query_builder = APIHelper.append_url_with_template_parameters(
351
+ _query_builder,
352
+ 'customer_id' => { 'value' => customer_id, 'encode' => true }
353
+ )
354
+ _query_builder = APIHelper.append_url_with_query_parameters(
355
+ _query_builder,
356
+ 'limit' => limit,
357
+ 'cursor' => cursor,
358
+ 'with_definitions' => with_definitions
359
+ )
360
+ _query_url = APIHelper.clean_url _query_builder
361
+
362
+ # Prepare headers.
363
+ _headers = {
364
+ 'accept' => 'application/json'
365
+ }
366
+
367
+ # Prepare and execute HttpRequest.
368
+ _request = config.http_client.get(
369
+ _query_url,
370
+ headers: _headers
371
+ )
372
+ OAuth2.apply(config, _request)
373
+ _response = execute_request(_request)
374
+
375
+ # Return appropriate response type.
376
+ decoded = APIHelper.json_deserialize(_response.raw_body)
377
+ _errors = APIHelper.map_response(decoded, ['errors'])
378
+ ApiResponse.new(
379
+ _response, data: decoded, errors: _errors
380
+ )
381
+ end
382
+
383
+ # Deletes a [custom attribute]($m/CustomAttribute) associated with a
384
+ # customer profile.
385
+ # To delete a custom attribute owned by another application, the
386
+ # `visibility` setting must be
387
+ # `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom attributes
388
+ # (also known as custom fields) are always set to
389
+ # `VISIBILITY_READ_WRITE_VALUES`.
390
+ # @param [String] customer_id Required parameter: The ID of the target
391
+ # [customer profile]($m/Customer).
392
+ # @param [String] key Required parameter: The key of the custom attribute to
393
+ # delete. This key must match the `key` of a custom attribute definition in
394
+ # the Square seller account. If the requesting application is not the
395
+ # definition owner, you must use the qualified key.
396
+ # @return [DeleteCustomerCustomAttributeResponse Hash] response from the API call
397
+ def delete_customer_custom_attribute(customer_id:,
398
+ key:)
399
+ # Prepare query url.
400
+ _query_builder = config.get_base_uri
401
+ _query_builder << '/v2/customers/{customer_id}/custom-attributes/{key}'
402
+ _query_builder = APIHelper.append_url_with_template_parameters(
403
+ _query_builder,
404
+ 'customer_id' => { 'value' => customer_id, 'encode' => true },
405
+ 'key' => { 'value' => key, 'encode' => true }
406
+ )
407
+ _query_url = APIHelper.clean_url _query_builder
408
+
409
+ # Prepare headers.
410
+ _headers = {
411
+ 'accept' => 'application/json'
412
+ }
413
+
414
+ # Prepare and execute HttpRequest.
415
+ _request = config.http_client.delete(
416
+ _query_url,
417
+ headers: _headers
418
+ )
419
+ OAuth2.apply(config, _request)
420
+ _response = execute_request(_request)
421
+
422
+ # Return appropriate response type.
423
+ decoded = APIHelper.json_deserialize(_response.raw_body)
424
+ _errors = APIHelper.map_response(decoded, ['errors'])
425
+ ApiResponse.new(
426
+ _response, data: decoded, errors: _errors
427
+ )
428
+ end
429
+
430
+ # Retrieves a [custom attribute]($m/CustomAttribute) associated with a
431
+ # customer profile.
432
+ # You can use the `with_definition` query parameter to also retrieve the
433
+ # custom attribute definition
434
+ # in the same call.
435
+ # To retrieve a custom attribute owned by another application, the
436
+ # `visibility` setting must be
437
+ # `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`. Note that
438
+ # seller-defined custom attributes
439
+ # (also known as custom fields) are always set to
440
+ # `VISIBILITY_READ_WRITE_VALUES`.
441
+ # @param [String] customer_id Required parameter: The ID of the target
442
+ # [customer profile]($m/Customer).
443
+ # @param [String] key Required parameter: The key of the custom attribute to
444
+ # retrieve. This key must match the `key` of a custom attribute definition
445
+ # in the Square seller account. If the requesting application is not the
446
+ # definition owner, you must use the qualified key.
447
+ # @param [TrueClass|FalseClass] with_definition Optional parameter:
448
+ # Indicates whether to return the [custom attribute
449
+ # definition]($m/CustomAttributeDefinition) in the `definition` field of the
450
+ # custom attribute. Set this parameter to `true` to get the name and
451
+ # description of the custom attribute, information about the data type, or
452
+ # other definition details. The default value is `false`.
453
+ # @param [Integer] version Optional parameter: The current version of the
454
+ # custom attribute, which is used for strongly consistent reads to guarantee
455
+ # that you receive the most up-to-date data. When included in the request,
456
+ # Square returns the specified version or a higher version if one exists. If
457
+ # the specified version is higher than the current version, Square returns a
458
+ # `BAD_REQUEST` error.
459
+ # @return [RetrieveCustomerCustomAttributeResponse Hash] response from the API call
460
+ def retrieve_customer_custom_attribute(customer_id:,
461
+ key:,
462
+ with_definition: false,
463
+ version: nil)
464
+ # Prepare query url.
465
+ _query_builder = config.get_base_uri
466
+ _query_builder << '/v2/customers/{customer_id}/custom-attributes/{key}'
467
+ _query_builder = APIHelper.append_url_with_template_parameters(
468
+ _query_builder,
469
+ 'customer_id' => { 'value' => customer_id, 'encode' => true },
470
+ 'key' => { 'value' => key, 'encode' => true }
471
+ )
472
+ _query_builder = APIHelper.append_url_with_query_parameters(
473
+ _query_builder,
474
+ 'with_definition' => with_definition,
475
+ 'version' => version
476
+ )
477
+ _query_url = APIHelper.clean_url _query_builder
478
+
479
+ # Prepare headers.
480
+ _headers = {
481
+ 'accept' => 'application/json'
482
+ }
483
+
484
+ # Prepare and execute HttpRequest.
485
+ _request = config.http_client.get(
486
+ _query_url,
487
+ headers: _headers
488
+ )
489
+ OAuth2.apply(config, _request)
490
+ _response = execute_request(_request)
491
+
492
+ # Return appropriate response type.
493
+ decoded = APIHelper.json_deserialize(_response.raw_body)
494
+ _errors = APIHelper.map_response(decoded, ['errors'])
495
+ ApiResponse.new(
496
+ _response, data: decoded, errors: _errors
497
+ )
498
+ end
499
+
500
+ # Creates or updates a [custom attribute]($m/CustomAttribute) for a customer
501
+ # profile.
502
+ # Use this endpoint to set the value of a custom attribute for a specified
503
+ # customer profile.
504
+ # A custom attribute is based on a custom attribute definition in a Square
505
+ # seller account, which
506
+ # is created using the
507
+ # [CreateCustomerCustomAttributeDefinition]($e/CustomerCustomAttributes/Crea
508
+ # teCustomerCustomAttributeDefinition) endpoint.
509
+ # To create or update a custom attribute owned by another application, the
510
+ # `visibility` setting
511
+ # must be `VISIBILITY_READ_WRITE_VALUES`. Note that seller-defined custom
512
+ # attributes
513
+ # (also known as custom fields) are always set to
514
+ # `VISIBILITY_READ_WRITE_VALUES`.
515
+ # @param [String] customer_id Required parameter: The ID of the target
516
+ # [customer profile]($m/Customer).
517
+ # @param [String] key Required parameter: The key of the custom attribute to
518
+ # create or update. This key must match the `key` of a custom attribute
519
+ # definition in the Square seller account. If the requesting application is
520
+ # not the definition owner, you must use the qualified key.
521
+ # @param [UpsertCustomerCustomAttributeRequest] body Required parameter: An
522
+ # object containing the fields to POST for the request. See the
523
+ # corresponding object definition for field details.
524
+ # @return [UpsertCustomerCustomAttributeResponse Hash] response from the API call
525
+ def upsert_customer_custom_attribute(customer_id:,
526
+ key:,
527
+ body:)
528
+ # Prepare query url.
529
+ _query_builder = config.get_base_uri
530
+ _query_builder << '/v2/customers/{customer_id}/custom-attributes/{key}'
531
+ _query_builder = APIHelper.append_url_with_template_parameters(
532
+ _query_builder,
533
+ 'customer_id' => { 'value' => customer_id, 'encode' => true },
534
+ 'key' => { 'value' => key, 'encode' => true }
535
+ )
536
+ _query_url = APIHelper.clean_url _query_builder
537
+
538
+ # Prepare headers.
539
+ _headers = {
540
+ 'accept' => 'application/json',
541
+ 'Content-Type' => 'application/json'
542
+ }
543
+
544
+ # Prepare and execute HttpRequest.
545
+ _request = config.http_client.post(
546
+ _query_url,
547
+ headers: _headers,
548
+ parameters: body.to_json
549
+ )
550
+ OAuth2.apply(config, _request)
551
+ _response = execute_request(_request)
552
+
553
+ # Return appropriate response type.
554
+ decoded = APIHelper.json_deserialize(_response.raw_body)
555
+ _errors = APIHelper.map_response(decoded, ['errors'])
556
+ ApiResponse.new(
557
+ _response, data: decoded, errors: _errors
558
+ )
559
+ end
560
+ end
561
+ end
@@ -7,18 +7,27 @@ module Square
7
7
 
8
8
  # Retrieves the list of customer groups of a business.
9
9
  # @param [String] cursor Optional parameter: A pagination cursor returned by
10
- # a previous call to this endpoint. Provide this to retrieve the next set of
11
- # results for your original query. See the [Pagination
12
- # guide](https://developer.squareup.com/docs/working-with-apis/pagination)
13
- # for more information.
10
+ # a previous call to this endpoint. Provide this cursor to retrieve the next
11
+ # set of results for your original query. For more information, see
12
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
13
+ # atterns/pagination).
14
+ # @param [Integer] limit Optional parameter: The maximum number of results
15
+ # to return in a single page. This limit is advisory. The response might
16
+ # contain more or fewer results. If the limit is less than 1 or greater than
17
+ # 50, Square returns a `400 VALUE_TOO_LOW` or `400 VALUE_TOO_HIGH` error.
18
+ # The default value is 50. For more information, see
19
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
20
+ # atterns/pagination).
14
21
  # @return [ListCustomerGroupsResponse Hash] response from the API call
15
- def list_customer_groups(cursor: nil)
22
+ def list_customer_groups(cursor: nil,
23
+ limit: nil)
16
24
  # Prepare query url.
17
25
  _query_builder = config.get_base_uri
18
26
  _query_builder << '/v2/customers/groups'
19
27
  _query_builder = APIHelper.append_url_with_query_parameters(
20
28
  _query_builder,
21
- 'cursor' => cursor
29
+ 'cursor' => cursor,
30
+ 'limit' => limit
22
31
  )
23
32
  _query_url = APIHelper.clean_url _query_builder
24
33
 
@@ -58,7 +67,7 @@ module Square
58
67
  # Prepare headers.
59
68
  _headers = {
60
69
  'accept' => 'application/json',
61
- 'content-type' => 'application/json; charset=utf-8'
70
+ 'Content-Type' => 'application/json'
62
71
  }
63
72
 
64
73
  # Prepare and execute HttpRequest.
@@ -169,7 +178,7 @@ module Square
169
178
  # Prepare headers.
170
179
  _headers = {
171
180
  'accept' => 'application/json',
172
- 'content-type' => 'application/json; charset=utf-8'
181
+ 'Content-Type' => 'application/json'
173
182
  }
174
183
 
175
184
  # Prepare and execute HttpRequest.
@@ -7,18 +7,27 @@ module Square
7
7
 
8
8
  # Retrieves the list of customer segments of a business.
9
9
  # @param [String] cursor Optional parameter: A pagination cursor returned by
10
- # previous calls to __ListCustomerSegments__. Used to retrieve the next set
11
- # of query results. See the [Pagination
12
- # guide](https://developer.squareup.com/docs/working-with-apis/pagination)
13
- # for more information.
10
+ # previous calls to `ListCustomerSegments`. This cursor is used to retrieve
11
+ # the next set of query results. For more information, see
12
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
13
+ # atterns/pagination).
14
+ # @param [Integer] limit Optional parameter: The maximum number of results
15
+ # to return in a single page. This limit is advisory. The response might
16
+ # contain more or fewer results. If the specified limit is less than 1 or
17
+ # greater than 50, Square returns a `400 VALUE_TOO_LOW` or `400
18
+ # VALUE_TOO_HIGH` error. The default value is 50. For more information, see
19
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
20
+ # atterns/pagination).
14
21
  # @return [ListCustomerSegmentsResponse Hash] response from the API call
15
- def list_customer_segments(cursor: nil)
22
+ def list_customer_segments(cursor: nil,
23
+ limit: nil)
16
24
  # Prepare query url.
17
25
  _query_builder = config.get_base_uri
18
26
  _query_builder << '/v2/customers/segments'
19
27
  _query_builder = APIHelper.append_url_with_query_parameters(
20
28
  _query_builder,
21
- 'cursor' => cursor
29
+ 'cursor' => cursor,
30
+ 'limit' => limit
22
31
  )
23
32
  _query_url = APIHelper.clean_url _query_builder
24
33