square.rb 3.3.0.20191217

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +10 -0
  3. data/README.md +285 -0
  4. data/lib/square/api/apple_pay_api.rb +50 -0
  5. data/lib/square/api/base_api.rb +43 -0
  6. data/lib/square/api/cash_drawers_api.rb +150 -0
  7. data/lib/square/api/catalog_api.rb +545 -0
  8. data/lib/square/api/checkout_api.rb +49 -0
  9. data/lib/square/api/customers_api.rb +327 -0
  10. data/lib/square/api/employees_api.rb +86 -0
  11. data/lib/square/api/inventory_api.rb +295 -0
  12. data/lib/square/api/labor_api.rb +553 -0
  13. data/lib/square/api/locations_api.rb +146 -0
  14. data/lib/square/api/merchants_api.rb +82 -0
  15. data/lib/square/api/mobile_authorization_api.rb +52 -0
  16. data/lib/square/api/o_auth_api.rb +163 -0
  17. data/lib/square/api/orders_api.rb +266 -0
  18. data/lib/square/api/payments_api.rb +277 -0
  19. data/lib/square/api/refunds_api.rb +144 -0
  20. data/lib/square/api/reporting_api.rb +138 -0
  21. data/lib/square/api/transactions_api.rb +377 -0
  22. data/lib/square/api/v1_employees_api.rb +715 -0
  23. data/lib/square/api/v1_items_api.rb +2046 -0
  24. data/lib/square/api/v1_locations_api.rb +83 -0
  25. data/lib/square/api/v1_transactions_api.rb +568 -0
  26. data/lib/square/api_helper.rb +276 -0
  27. data/lib/square/client.rb +156 -0
  28. data/lib/square/configuration.rb +93 -0
  29. data/lib/square/exceptions/api_exception.rb +15 -0
  30. data/lib/square/http/api_response.rb +45 -0
  31. data/lib/square/http/auth/o_auth2.rb +12 -0
  32. data/lib/square/http/faraday_client.rb +59 -0
  33. data/lib/square/http/http_call_back.rb +19 -0
  34. data/lib/square/http/http_client.rb +99 -0
  35. data/lib/square/http/http_method_enum.rb +8 -0
  36. data/lib/square/http/http_request.rb +45 -0
  37. data/lib/square/http/http_response.rb +24 -0
  38. data/lib/square.rb +49 -0
  39. data/spec/user_journey_spec.rb +145 -0
  40. data/test/api/api_test_base.rb +24 -0
  41. data/test/api/test_catalog_api.rb +59 -0
  42. data/test/api/test_customers_api.rb +45 -0
  43. data/test/api/test_employees_api.rb +36 -0
  44. data/test/api/test_labor_api.rb +74 -0
  45. data/test/api/test_locations_api.rb +35 -0
  46. data/test/api/test_merchants_api.rb +40 -0
  47. data/test/api/test_payments_api.rb +42 -0
  48. data/test/api/test_refunds_api.rb +41 -0
  49. data/test/http_response_catcher.rb +19 -0
  50. data/test/test_helper.rb +94 -0
  51. metadata +190 -0
@@ -0,0 +1,83 @@
1
+ module Square
2
+ # V1LocationsApi
3
+ class V1LocationsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Get the general information for a business.
9
+ # ---
10
+ # - __Deprecation date__: 2019-11-20
11
+ # - [__Retirement
12
+ # date__](https://developer.squareup.com/docs/build-basics/api-lifecycle#dep
13
+ # recated): 2020-11-18
14
+ # - [Migration
15
+ # guide](https://developer.squareup.com/docs/migrate-from-v1/guides/v1-locat
16
+ # ions)
17
+ # ---
18
+ # @return [V1Merchant Hash] response from the API call
19
+ def retrieve_business
20
+ warn 'Endpoint retrieve_business in V1LocationsApi is deprecated'
21
+ # Prepare query url.
22
+ _query_builder = config.get_base_uri
23
+ _query_builder << '/v1/me'
24
+ _query_url = APIHelper.clean_url _query_builder
25
+
26
+ # Prepare headers.
27
+ _headers = {
28
+ 'accept' => 'application/json'
29
+ }
30
+
31
+ # Prepare and execute HttpRequest.
32
+ _request = config.http_client.get(
33
+ _query_url,
34
+ headers: _headers
35
+ )
36
+ OAuth2.apply(config, _request)
37
+ _response = execute_request(_request)
38
+
39
+ # Return appropriate response type.
40
+ decoded = APIHelper.json_deserialize(_response.raw_body)
41
+ _errors = APIHelper.map_response(decoded, ['errors'])
42
+ ApiResponse.new(_response, data: decoded, errors: _errors)
43
+ end
44
+
45
+ # Provides details for all business locations associated with a Square
46
+ # account, including the Square-assigned object ID for the location.
47
+ # ---
48
+ # - __Deprecation date__: 2019-11-20
49
+ # - [__Retirement
50
+ # date__](https://developer.squareup.com/docs/build-basics/api-lifecycle#dep
51
+ # recated): 2020-11-18
52
+ # - [Migration
53
+ # guide](https://developer.squareup.com/docs/migrate-from-v1/guides/v1-locat
54
+ # ions)
55
+ # ---
56
+ # @return [List of V1Merchant Hash] response from the API call
57
+ def list_locations
58
+ warn 'Endpoint list_locations in V1LocationsApi is deprecated'
59
+ # Prepare query url.
60
+ _query_builder = config.get_base_uri
61
+ _query_builder << '/v1/me/locations'
62
+ _query_url = APIHelper.clean_url _query_builder
63
+
64
+ # Prepare headers.
65
+ _headers = {
66
+ 'accept' => 'application/json'
67
+ }
68
+
69
+ # Prepare and execute HttpRequest.
70
+ _request = config.http_client.get(
71
+ _query_url,
72
+ headers: _headers
73
+ )
74
+ OAuth2.apply(config, _request)
75
+ _response = execute_request(_request)
76
+
77
+ # Return appropriate response type.
78
+ decoded = APIHelper.json_deserialize(_response.raw_body)
79
+ _errors = APIHelper.map_response(decoded, ['errors'])
80
+ ApiResponse.new(_response, data: decoded, errors: _errors)
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,568 @@
1
+ module Square
2
+ # V1TransactionsApi
3
+ class V1TransactionsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Provides non-confidential details for all of a location's associated bank
9
+ # accounts. This endpoint does not provide full bank account numbers, and
10
+ # there is no way to obtain a full bank account number with the Connect API.
11
+ # @param [String] location_id Required parameter: The ID of the location to
12
+ # list bank accounts for.
13
+ # @return [List of V1BankAccount Hash] response from the API call
14
+ def list_bank_accounts(location_id:)
15
+ # Prepare query url.
16
+ _query_builder = config.get_base_uri
17
+ _query_builder << '/v1/{location_id}/bank-accounts'
18
+ _query_builder = APIHelper.append_url_with_template_parameters(
19
+ _query_builder,
20
+ 'location_id' => location_id
21
+ )
22
+ _query_url = APIHelper.clean_url _query_builder
23
+
24
+ # Prepare headers.
25
+ _headers = {
26
+ 'accept' => 'application/json'
27
+ }
28
+
29
+ # Prepare and execute HttpRequest.
30
+ _request = config.http_client.get(
31
+ _query_url,
32
+ headers: _headers
33
+ )
34
+ OAuth2.apply(config, _request)
35
+ _response = execute_request(_request)
36
+
37
+ # Return appropriate response type.
38
+ decoded = APIHelper.json_deserialize(_response.raw_body)
39
+ _errors = APIHelper.map_response(decoded, ['errors'])
40
+ ApiResponse.new(_response, data: decoded, errors: _errors)
41
+ end
42
+
43
+ # Provides non-confidential details for a merchant's associated bank
44
+ # account. This endpoint does not provide full bank account numbers, and
45
+ # there is no way to obtain a full bank account number with the Connect API.
46
+ # @param [String] location_id Required parameter: The ID of the bank
47
+ # account's associated location.
48
+ # @param [String] bank_account_id Required parameter: The bank account's
49
+ # Square-issued ID. You obtain this value from Settlement objects
50
+ # returned.
51
+ # @return [V1BankAccount Hash] response from the API call
52
+ def retrieve_bank_account(location_id:,
53
+ bank_account_id:)
54
+ # Prepare query url.
55
+ _query_builder = config.get_base_uri
56
+ _query_builder << '/v1/{location_id}/bank-accounts/{bank_account_id}'
57
+ _query_builder = APIHelper.append_url_with_template_parameters(
58
+ _query_builder,
59
+ 'location_id' => location_id,
60
+ 'bank_account_id' => bank_account_id
61
+ )
62
+ _query_url = APIHelper.clean_url _query_builder
63
+
64
+ # Prepare headers.
65
+ _headers = {
66
+ 'accept' => 'application/json'
67
+ }
68
+
69
+ # Prepare and execute HttpRequest.
70
+ _request = config.http_client.get(
71
+ _query_url,
72
+ headers: _headers
73
+ )
74
+ OAuth2.apply(config, _request)
75
+ _response = execute_request(_request)
76
+
77
+ # Return appropriate response type.
78
+ decoded = APIHelper.json_deserialize(_response.raw_body)
79
+ _errors = APIHelper.map_response(decoded, ['errors'])
80
+ ApiResponse.new(_response, data: decoded, errors: _errors)
81
+ end
82
+
83
+ # Provides summary information for a merchant's online store orders.
84
+ # @param [String] location_id Required parameter: The ID of the location to
85
+ # list online store orders for.
86
+ # @param [SortOrder] order Optional parameter: TThe order in which payments
87
+ # are listed in the response.
88
+ # @param [Integer] limit Optional parameter: The maximum number of payments
89
+ # to return in a single response. This value cannot exceed 200.
90
+ # @param [String] batch_token Optional parameter: A pagination cursor to
91
+ # retrieve the next set of results for your original query to the
92
+ # endpoint.
93
+ # @return [List of V1Order Hash] response from the API call
94
+ def list_orders(location_id:,
95
+ order: nil,
96
+ limit: nil,
97
+ batch_token: nil)
98
+ # Prepare query url.
99
+ _query_builder = config.get_base_uri
100
+ _query_builder << '/v1/{location_id}/orders'
101
+ _query_builder = APIHelper.append_url_with_template_parameters(
102
+ _query_builder,
103
+ 'location_id' => location_id
104
+ )
105
+ _query_builder = APIHelper.append_url_with_query_parameters(
106
+ _query_builder,
107
+ 'order' => order,
108
+ 'limit' => limit,
109
+ 'batch_token' => batch_token
110
+ )
111
+ _query_url = APIHelper.clean_url _query_builder
112
+
113
+ # Prepare headers.
114
+ _headers = {
115
+ 'accept' => 'application/json'
116
+ }
117
+
118
+ # Prepare and execute HttpRequest.
119
+ _request = config.http_client.get(
120
+ _query_url,
121
+ headers: _headers
122
+ )
123
+ OAuth2.apply(config, _request)
124
+ _response = execute_request(_request)
125
+
126
+ # Return appropriate response type.
127
+ decoded = APIHelper.json_deserialize(_response.raw_body)
128
+ _errors = APIHelper.map_response(decoded, ['errors'])
129
+ ApiResponse.new(_response, data: decoded, errors: _errors)
130
+ end
131
+
132
+ # Provides comprehensive information for a single online store order,
133
+ # including the order's history.
134
+ # @param [String] location_id Required parameter: The ID of the order's
135
+ # associated location.
136
+ # @param [String] order_id Required parameter: The order's Square-issued ID.
137
+ # You obtain this value from Order objects returned by the List Orders
138
+ # endpoint
139
+ # @return [V1Order Hash] response from the API call
140
+ def retrieve_order(location_id:,
141
+ order_id:)
142
+ # Prepare query url.
143
+ _query_builder = config.get_base_uri
144
+ _query_builder << '/v1/{location_id}/orders/{order_id}'
145
+ _query_builder = APIHelper.append_url_with_template_parameters(
146
+ _query_builder,
147
+ 'location_id' => location_id,
148
+ 'order_id' => order_id
149
+ )
150
+ _query_url = APIHelper.clean_url _query_builder
151
+
152
+ # Prepare headers.
153
+ _headers = {
154
+ 'accept' => 'application/json'
155
+ }
156
+
157
+ # Prepare and execute HttpRequest.
158
+ _request = config.http_client.get(
159
+ _query_url,
160
+ headers: _headers
161
+ )
162
+ OAuth2.apply(config, _request)
163
+ _response = execute_request(_request)
164
+
165
+ # Return appropriate response type.
166
+ decoded = APIHelper.json_deserialize(_response.raw_body)
167
+ _errors = APIHelper.map_response(decoded, ['errors'])
168
+ ApiResponse.new(_response, data: decoded, errors: _errors)
169
+ end
170
+
171
+ # Updates the details of an online store order. Every update you perform on
172
+ # an order corresponds to one of three actions:
173
+ # @param [String] location_id Required parameter: The ID of the order's
174
+ # associated location.
175
+ # @param [String] order_id Required parameter: The order's Square-issued ID.
176
+ # You obtain this value from Order objects returned by the List Orders
177
+ # endpoint
178
+ # @param [V1UpdateOrderRequest] body Required parameter: An object
179
+ # containing the fields to POST for the request. See the corresponding
180
+ # object definition for field details.
181
+ # @return [V1Order Hash] response from the API call
182
+ def update_order(location_id:,
183
+ order_id:,
184
+ body:)
185
+ # Prepare query url.
186
+ _query_builder = config.get_base_uri
187
+ _query_builder << '/v1/{location_id}/orders/{order_id}'
188
+ _query_builder = APIHelper.append_url_with_template_parameters(
189
+ _query_builder,
190
+ 'location_id' => location_id,
191
+ 'order_id' => order_id
192
+ )
193
+ _query_url = APIHelper.clean_url _query_builder
194
+
195
+ # Prepare headers.
196
+ _headers = {
197
+ 'accept' => 'application/json',
198
+ 'content-type' => 'application/json; charset=utf-8'
199
+ }
200
+
201
+ # Prepare and execute HttpRequest.
202
+ _request = config.http_client.put(
203
+ _query_url,
204
+ headers: _headers,
205
+ parameters: body.to_json
206
+ )
207
+ OAuth2.apply(config, _request)
208
+ _response = execute_request(_request)
209
+
210
+ # Return appropriate response type.
211
+ decoded = APIHelper.json_deserialize(_response.raw_body)
212
+ _errors = APIHelper.map_response(decoded, ['errors'])
213
+ ApiResponse.new(_response, data: decoded, errors: _errors)
214
+ end
215
+
216
+ # Provides summary information for all payments taken for a given
217
+ # Square account during a date range. Date ranges cannot exceed 1 year in
218
+ # length. See Date ranges for details of inclusive and exclusive dates.
219
+ # *Note**: Details for payments processed with Square Point of Sale while
220
+ # in offline mode may not be transmitted to Square for up to 72 hours.
221
+ # Offline payments have a `created_at` value that reflects the time the
222
+ # payment was originally processed, not the time it was subsequently
223
+ # transmitted to Square. Consequently, the ListPayments endpoint might
224
+ # list an offline payment chronologically between online payments that
225
+ # were seen in a previous request.
226
+ # @param [String] location_id Required parameter: The ID of the location to
227
+ # list payments for. If you specify me, this endpoint returns payments
228
+ # aggregated from all of the business's locations.
229
+ # @param [SortOrder] order Optional parameter: The order in which payments
230
+ # are listed in the response.
231
+ # @param [String] begin_time Optional parameter: The beginning of the
232
+ # requested reporting period, in ISO 8601 format. If this value is before
233
+ # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
234
+ # Default value: The current time minus one year.
235
+ # @param [String] end_time Optional parameter: The end of the requested
236
+ # reporting period, in ISO 8601 format. If this value is more than one year
237
+ # greater than begin_time, this endpoint returns an error. Default value:
238
+ # The current time.
239
+ # @param [Integer] limit Optional parameter: The maximum number of payments
240
+ # to return in a single response. This value cannot exceed 200.
241
+ # @param [String] batch_token Optional parameter: A pagination cursor to
242
+ # retrieve the next set of results for your original query to the
243
+ # endpoint.
244
+ # @param [Boolean] include_partial Optional parameter: Indicates whether or
245
+ # not to include partial payments in the response. Partial payments will
246
+ # have the tenders collected so far, but the itemizations will be empty
247
+ # until the payment is completed.
248
+ # @return [List of V1Payment Hash] response from the API call
249
+ def list_payments(location_id:,
250
+ order: nil,
251
+ begin_time: nil,
252
+ end_time: nil,
253
+ limit: nil,
254
+ batch_token: nil,
255
+ include_partial: nil)
256
+ # Prepare query url.
257
+ _query_builder = config.get_base_uri
258
+ _query_builder << '/v1/{location_id}/payments'
259
+ _query_builder = APIHelper.append_url_with_template_parameters(
260
+ _query_builder,
261
+ 'location_id' => location_id
262
+ )
263
+ _query_builder = APIHelper.append_url_with_query_parameters(
264
+ _query_builder,
265
+ 'order' => order,
266
+ 'begin_time' => begin_time,
267
+ 'end_time' => end_time,
268
+ 'limit' => limit,
269
+ 'batch_token' => batch_token,
270
+ 'include_partial' => include_partial
271
+ )
272
+ _query_url = APIHelper.clean_url _query_builder
273
+
274
+ # Prepare headers.
275
+ _headers = {
276
+ 'accept' => 'application/json'
277
+ }
278
+
279
+ # Prepare and execute HttpRequest.
280
+ _request = config.http_client.get(
281
+ _query_url,
282
+ headers: _headers
283
+ )
284
+ OAuth2.apply(config, _request)
285
+ _response = execute_request(_request)
286
+
287
+ # Return appropriate response type.
288
+ decoded = APIHelper.json_deserialize(_response.raw_body)
289
+ _errors = APIHelper.map_response(decoded, ['errors'])
290
+ ApiResponse.new(_response, data: decoded, errors: _errors)
291
+ end
292
+
293
+ # Provides comprehensive information for a single payment.
294
+ # @param [String] location_id Required parameter: The ID of the payment's
295
+ # associated location.
296
+ # @param [String] payment_id Required parameter: The Square-issued payment
297
+ # ID. payment_id comes from Payment objects returned by the List Payments
298
+ # endpoint, Settlement objects returned by the List Settlements endpoint, or
299
+ # Refund objects returned by the List Refunds endpoint.
300
+ # @return [V1Payment Hash] response from the API call
301
+ def retrieve_payment(location_id:,
302
+ payment_id:)
303
+ # Prepare query url.
304
+ _query_builder = config.get_base_uri
305
+ _query_builder << '/v1/{location_id}/payments/{payment_id}'
306
+ _query_builder = APIHelper.append_url_with_template_parameters(
307
+ _query_builder,
308
+ 'location_id' => location_id,
309
+ 'payment_id' => payment_id
310
+ )
311
+ _query_url = APIHelper.clean_url _query_builder
312
+
313
+ # Prepare headers.
314
+ _headers = {
315
+ 'accept' => 'application/json'
316
+ }
317
+
318
+ # Prepare and execute HttpRequest.
319
+ _request = config.http_client.get(
320
+ _query_url,
321
+ headers: _headers
322
+ )
323
+ OAuth2.apply(config, _request)
324
+ _response = execute_request(_request)
325
+
326
+ # Return appropriate response type.
327
+ decoded = APIHelper.json_deserialize(_response.raw_body)
328
+ _errors = APIHelper.map_response(decoded, ['errors'])
329
+ ApiResponse.new(_response, data: decoded, errors: _errors)
330
+ end
331
+
332
+ # Provides the details for all refunds initiated by a merchant or any of the
333
+ # merchant's mobile staff during a date range. Date ranges cannot exceed one
334
+ # year in length.
335
+ # @param [String] location_id Required parameter: The ID of the location to
336
+ # list refunds for.
337
+ # @param [SortOrder] order Optional parameter: TThe order in which payments
338
+ # are listed in the response.
339
+ # @param [String] begin_time Optional parameter: The beginning of the
340
+ # requested reporting period, in ISO 8601 format. If this value is before
341
+ # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
342
+ # Default value: The current time minus one year.
343
+ # @param [String] end_time Optional parameter: The end of the requested
344
+ # reporting period, in ISO 8601 format. If this value is more than one year
345
+ # greater than begin_time, this endpoint returns an error. Default value:
346
+ # The current time.
347
+ # @param [Integer] limit Optional parameter: The approximate number of
348
+ # refunds to return in a single response. Default: 100. Max: 200. Response
349
+ # may contain more results than the prescribed limit when refunds are made
350
+ # simultaneously to multiple tenders in a payment or when refunds are
351
+ # generated in an exchange to account for the value of returned goods.
352
+ # @param [String] batch_token Optional parameter: A pagination cursor to
353
+ # retrieve the next set of results for your original query to the
354
+ # endpoint.
355
+ # @return [List of V1Refund Hash] response from the API call
356
+ def list_refunds(location_id:,
357
+ order: nil,
358
+ begin_time: nil,
359
+ end_time: nil,
360
+ limit: nil,
361
+ batch_token: nil)
362
+ # Prepare query url.
363
+ _query_builder = config.get_base_uri
364
+ _query_builder << '/v1/{location_id}/refunds'
365
+ _query_builder = APIHelper.append_url_with_template_parameters(
366
+ _query_builder,
367
+ 'location_id' => location_id
368
+ )
369
+ _query_builder = APIHelper.append_url_with_query_parameters(
370
+ _query_builder,
371
+ 'order' => order,
372
+ 'begin_time' => begin_time,
373
+ 'end_time' => end_time,
374
+ 'limit' => limit,
375
+ 'batch_token' => batch_token
376
+ )
377
+ _query_url = APIHelper.clean_url _query_builder
378
+
379
+ # Prepare headers.
380
+ _headers = {
381
+ 'accept' => 'application/json'
382
+ }
383
+
384
+ # Prepare and execute HttpRequest.
385
+ _request = config.http_client.get(
386
+ _query_url,
387
+ headers: _headers
388
+ )
389
+ OAuth2.apply(config, _request)
390
+ _response = execute_request(_request)
391
+
392
+ # Return appropriate response type.
393
+ decoded = APIHelper.json_deserialize(_response.raw_body)
394
+ _errors = APIHelper.map_response(decoded, ['errors'])
395
+ ApiResponse.new(_response, data: decoded, errors: _errors)
396
+ end
397
+
398
+ # Issues a refund for a previously processed payment. You must issue
399
+ # a refund within 60 days of the associated payment.
400
+ # You cannot issue a partial refund for a split tender payment. You must
401
+ # instead issue a full or partial refund for a particular tender, by
402
+ # providing the applicable tender id to the V1CreateRefund endpoint.
403
+ # Issuing a full refund for a split tender payment refunds all tenders
404
+ # associated with the payment.
405
+ # Issuing a refund for a card payment is not reversible. For development
406
+ # purposes, you can create fake cash payments in Square Point of Sale and
407
+ # refund them.
408
+ # @param [String] location_id Required parameter: The ID of the original
409
+ # payment's associated location.
410
+ # @param [V1CreateRefundRequest] body Required parameter: An object
411
+ # containing the fields to POST for the request. See the corresponding
412
+ # object definition for field details.
413
+ # @return [V1Refund Hash] response from the API call
414
+ def create_refund(location_id:,
415
+ body:)
416
+ # Prepare query url.
417
+ _query_builder = config.get_base_uri
418
+ _query_builder << '/v1/{location_id}/refunds'
419
+ _query_builder = APIHelper.append_url_with_template_parameters(
420
+ _query_builder,
421
+ 'location_id' => location_id
422
+ )
423
+ _query_url = APIHelper.clean_url _query_builder
424
+
425
+ # Prepare headers.
426
+ _headers = {
427
+ 'accept' => 'application/json',
428
+ 'content-type' => 'application/json; charset=utf-8'
429
+ }
430
+
431
+ # Prepare and execute HttpRequest.
432
+ _request = config.http_client.post(
433
+ _query_url,
434
+ headers: _headers,
435
+ parameters: body.to_json
436
+ )
437
+ OAuth2.apply(config, _request)
438
+ _response = execute_request(_request)
439
+
440
+ # Return appropriate response type.
441
+ decoded = APIHelper.json_deserialize(_response.raw_body)
442
+ _errors = APIHelper.map_response(decoded, ['errors'])
443
+ ApiResponse.new(_response, data: decoded, errors: _errors)
444
+ end
445
+
446
+ # Provides summary information for all deposits and withdrawals
447
+ # initiated by Square to a linked bank account during a date range. Date
448
+ # ranges cannot exceed one year in length.
449
+ # *Note**: the ListSettlements endpoint does not provide entry
450
+ # information.
451
+ # @param [String] location_id Required parameter: The ID of the location to
452
+ # list settlements for.
453
+ # @param [SortOrder] order Optional parameter: TThe order in which payments
454
+ # are listed in the response.
455
+ # @param [String] begin_time Optional parameter: The beginning of the
456
+ # requested reporting period, in ISO 8601 format. If this value is before
457
+ # January 1, 2013 (2013-01-01T00:00:00Z), this endpoint returns an error.
458
+ # Default value: The current time minus one year.
459
+ # @param [String] end_time Optional parameter: The end of the requested
460
+ # reporting period, in ISO 8601 format. If this value is more than one year
461
+ # greater than begin_time, this endpoint returns an error. Default value:
462
+ # The current time.
463
+ # @param [Integer] limit Optional parameter: The maximum number of payments
464
+ # to return in a single response. This value cannot exceed 200.
465
+ # @param [V1ListSettlementsRequestStatus] status Optional parameter: Provide
466
+ # this parameter to retrieve only settlements with a particular status (SENT
467
+ # or FAILED).
468
+ # @param [String] batch_token Optional parameter: A pagination cursor to
469
+ # retrieve the next set of results for your original query to the
470
+ # endpoint.
471
+ # @return [List of V1Settlement Hash] response from the API call
472
+ def list_settlements(location_id:,
473
+ order: nil,
474
+ begin_time: nil,
475
+ end_time: nil,
476
+ limit: nil,
477
+ status: nil,
478
+ batch_token: nil)
479
+ # Prepare query url.
480
+ _query_builder = config.get_base_uri
481
+ _query_builder << '/v1/{location_id}/settlements'
482
+ _query_builder = APIHelper.append_url_with_template_parameters(
483
+ _query_builder,
484
+ 'location_id' => location_id
485
+ )
486
+ _query_builder = APIHelper.append_url_with_query_parameters(
487
+ _query_builder,
488
+ 'order' => order,
489
+ 'begin_time' => begin_time,
490
+ 'end_time' => end_time,
491
+ 'limit' => limit,
492
+ 'status' => status,
493
+ 'batch_token' => batch_token
494
+ )
495
+ _query_url = APIHelper.clean_url _query_builder
496
+
497
+ # Prepare headers.
498
+ _headers = {
499
+ 'accept' => 'application/json'
500
+ }
501
+
502
+ # Prepare and execute HttpRequest.
503
+ _request = config.http_client.get(
504
+ _query_url,
505
+ headers: _headers
506
+ )
507
+ OAuth2.apply(config, _request)
508
+ _response = execute_request(_request)
509
+
510
+ # Return appropriate response type.
511
+ decoded = APIHelper.json_deserialize(_response.raw_body)
512
+ _errors = APIHelper.map_response(decoded, ['errors'])
513
+ ApiResponse.new(_response, data: decoded, errors: _errors)
514
+ end
515
+
516
+ # Provides comprehensive information for a single settlement.
517
+ # The returned `Settlement` objects include an `entries` field that lists
518
+ # the transactions that contribute to the settlement total. Most
519
+ # settlement entries correspond to a payment payout, but settlement
520
+ # entries are also generated for less common events, like refunds, manual
521
+ # adjustments, or chargeback holds.
522
+ # Square initiates its regular deposits as indicated in the
523
+ # [Deposit Options with
524
+ # Square](https://squareup.com/help/us/en/article/3807)
525
+ # help article. Details for a regular deposit are usually not available
526
+ # from Connect API endpoints before 10 p.m. PST the same day.
527
+ # Square does not know when an initiated settlement **completes**, only
528
+ # whether it has failed. A completed settlement is typically reflected in
529
+ # a bank account within 3 business days, but in exceptional cases it may
530
+ # take longer.
531
+ # @param [String] location_id Required parameter: The ID of the
532
+ # settlements's associated location.
533
+ # @param [String] settlement_id Required parameter: The settlement's
534
+ # Square-issued ID. You obtain this value from Settlement objects returned
535
+ # by the List Settlements endpoint.
536
+ # @return [V1Settlement Hash] response from the API call
537
+ def retrieve_settlement(location_id:,
538
+ settlement_id:)
539
+ # Prepare query url.
540
+ _query_builder = config.get_base_uri
541
+ _query_builder << '/v1/{location_id}/settlements/{settlement_id}'
542
+ _query_builder = APIHelper.append_url_with_template_parameters(
543
+ _query_builder,
544
+ 'location_id' => location_id,
545
+ 'settlement_id' => settlement_id
546
+ )
547
+ _query_url = APIHelper.clean_url _query_builder
548
+
549
+ # Prepare headers.
550
+ _headers = {
551
+ 'accept' => 'application/json'
552
+ }
553
+
554
+ # Prepare and execute HttpRequest.
555
+ _request = config.http_client.get(
556
+ _query_url,
557
+ headers: _headers
558
+ )
559
+ OAuth2.apply(config, _request)
560
+ _response = execute_request(_request)
561
+
562
+ # Return appropriate response type.
563
+ decoded = APIHelper.json_deserialize(_response.raw_body)
564
+ _errors = APIHelper.map_response(decoded, ['errors'])
565
+ ApiResponse.new(_response, data: decoded, errors: _errors)
566
+ end
567
+ end
568
+ end