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