square.rb 26.1.0.20230119 → 27.0.0.20230419

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/lib/square/api/apple_pay_api.rb +14 -30
  4. data/lib/square/api/bank_accounts_api.rb +40 -90
  5. data/lib/square/api/base_api.rb +42 -42
  6. data/lib/square/api/booking_custom_attributes_api.rb +171 -336
  7. data/lib/square/api/bookings_api.rb +140 -263
  8. data/lib/square/api/cards_api.rb +58 -120
  9. data/lib/square/api/cash_drawers_api.rb +47 -103
  10. data/lib/square/api/catalog_api.rb +200 -426
  11. data/lib/square/api/checkout_api.rb +86 -176
  12. data/lib/square/api/customer_custom_attributes_api.rb +157 -310
  13. data/lib/square/api/customer_groups_api.rb +69 -145
  14. data/lib/square/api/customer_segments_api.rb +26 -61
  15. data/lib/square/api/customers_api.rb +147 -294
  16. data/lib/square/api/devices_api.rb +42 -89
  17. data/lib/square/api/disputes_api.rb +132 -290
  18. data/lib/square/api/employees_api.rb +28 -63
  19. data/lib/square/api/gift_card_activities_api.rb +34 -66
  20. data/lib/square/api/gift_cards_api.rb +109 -207
  21. data/lib/square/api/inventory_api.rb +204 -391
  22. data/lib/square/api/invoices_api.rb +121 -240
  23. data/lib/square/api/labor_api.rb +223 -459
  24. data/lib/square/api/location_custom_attributes_api.rb +173 -338
  25. data/lib/square/api/locations_api.rb +54 -112
  26. data/lib/square/api/loyalty_api.rb +283 -535
  27. data/lib/square/api/merchants_api.rb +25 -60
  28. data/lib/square/api/mobile_authorization_api.rb +14 -30
  29. data/lib/square/api/o_auth_api.rb +54 -109
  30. data/lib/square/api/order_custom_attributes_api.rb +174 -339
  31. data/lib/square/api/orders_api.rb +115 -222
  32. data/lib/square/api/payments_api.rb +118 -217
  33. data/lib/square/api/payouts_api.rb +54 -107
  34. data/lib/square/api/refunds_api.rb +59 -104
  35. data/lib/square/api/sites_api.rb +11 -28
  36. data/lib/square/api/snippets_api.rb +42 -90
  37. data/lib/square/api/subscriptions_api.rb +150 -299
  38. data/lib/square/api/team_api.rb +114 -224
  39. data/lib/square/api/terminal_api.rb +162 -328
  40. data/lib/square/api/transactions_api.rb +64 -128
  41. data/lib/square/api/v1_transactions_api.rb +155 -296
  42. data/lib/square/api/vendors_api.rb +100 -193
  43. data/lib/square/api/webhook_subscriptions_api.rb +124 -244
  44. data/lib/square/api_helper.rb +1 -437
  45. data/lib/square/client.rb +77 -47
  46. data/lib/square/configuration.rb +28 -53
  47. data/lib/square/exceptions/api_exception.rb +1 -11
  48. data/lib/square/http/api_response.rb +13 -19
  49. data/lib/square/http/auth/o_auth2.rb +14 -7
  50. data/lib/square/http/http_call_back.rb +1 -15
  51. data/lib/square/http/http_method_enum.rb +1 -4
  52. data/lib/square/http/http_request.rb +1 -45
  53. data/lib/square/http/http_response.rb +1 -20
  54. data/lib/square/utilities/date_time_helper.rb +1 -146
  55. data/lib/square/utilities/file_wrapper.rb +5 -5
  56. data/lib/square.rb +6 -6
  57. data/spec/user_journey_spec.rb +2 -2
  58. data/test/api/api_test_base.rb +13 -5
  59. data/test/api/test_catalog_api.rb +5 -4
  60. data/test/api/test_customers_api.rb +3 -2
  61. data/test/api/test_employees_api.rb +4 -3
  62. data/test/api/test_labor_api.rb +6 -5
  63. data/test/api/test_locations_api.rb +3 -2
  64. data/test/api/test_merchants_api.rb +4 -3
  65. data/test/api/test_payments_api.rb +4 -3
  66. data/test/api/test_refunds_api.rb +4 -3
  67. metadata +11 -111
  68. data/lib/square/exceptions/validation_exception.rb +0 -13
  69. data/lib/square/http/faraday_client.rb +0 -93
  70. data/lib/square/http/http_client.rb +0 -118
  71. data/test/test_helper.rb +0 -89
@@ -1,28 +1,27 @@
1
1
  module Square
2
2
  # PaymentsApi
3
3
  class PaymentsApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
4
  # Retrieves a list of payments taken by the account making the request.
9
5
  # Results are eventually consistent, and new payments or changes to payments
10
6
  # might take several
11
7
  # seconds to appear.
12
8
  # The maximum results per page is 100.
13
- # @param [String] begin_time Optional parameter: The timestamp for the
14
- # beginning of the reporting period, in RFC 3339 format. Inclusive. Default:
15
- # The current time minus one year.
16
- # @param [String] end_time Optional parameter: The timestamp for the end of
17
- # the reporting period, in RFC 3339 format. Default: The current time.
9
+ # @param [String] begin_time Optional parameter: Indicates the start of the
10
+ # time range to retrieve payments for, in RFC 3339 format. The range is
11
+ # determined using the `created_at` field for each Payment. Inclusive.
12
+ # Default: The current time minus one year.
13
+ # @param [String] end_time Optional parameter: Indicates the end of the time
14
+ # range to retrieve payments for, in RFC 3339 format. The range is
15
+ # determined using the `created_at` field for each Payment. Default: The
16
+ # current time.
18
17
  # @param [String] sort_order Optional parameter: The order in which results
19
- # are listed: - `ASC` - Oldest to newest. - `DESC` - Newest to oldest
20
- # (default).
18
+ # are listed by `Payment.created_at`: - `ASC` - Oldest to newest. - `DESC` -
19
+ # Newest to oldest (default).
21
20
  # @param [String] cursor Optional parameter: A pagination cursor returned by
22
21
  # a previous call to this endpoint. Provide this cursor to retrieve the next
23
22
  # set of results for the original query. For more information, see
24
- # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
25
- # .
23
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
24
+ # atterns/pagination).
26
25
  # @param [String] location_id Optional parameter: Limit results to the
27
26
  # location supplied. By default, results are returned for the default (main)
28
27
  # location associated with the seller.
@@ -48,42 +47,26 @@ module Square
48
47
  last_4: nil,
49
48
  card_brand: nil,
50
49
  limit: nil)
51
- # Prepare query url.
52
- _query_builder = config.get_base_uri
53
- _query_builder << '/v2/payments'
54
- _query_builder = APIHelper.append_url_with_query_parameters(
55
- _query_builder,
56
- 'begin_time' => begin_time,
57
- 'end_time' => end_time,
58
- 'sort_order' => sort_order,
59
- 'cursor' => cursor,
60
- 'location_id' => location_id,
61
- 'total' => total,
62
- 'last_4' => last_4,
63
- 'card_brand' => card_brand,
64
- 'limit' => limit
65
- )
66
- _query_url = APIHelper.clean_url _query_builder
67
-
68
- # Prepare headers.
69
- _headers = {
70
- 'accept' => 'application/json'
71
- }
72
-
73
- # Prepare and execute HttpRequest.
74
- _request = config.http_client.get(
75
- _query_url,
76
- headers: _headers
77
- )
78
- OAuth2.apply(config, _request)
79
- _response = execute_request(_request)
80
-
81
- # Return appropriate response type.
82
- decoded = APIHelper.json_deserialize(_response.raw_body)
83
- _errors = APIHelper.map_response(decoded, ['errors'])
84
- ApiResponse.new(
85
- _response, data: decoded, errors: _errors
86
- )
50
+ new_api_call_builder
51
+ .request(new_request_builder(HttpMethodEnum::GET,
52
+ '/v2/payments',
53
+ 'default')
54
+ .query_param(new_parameter(begin_time, key: 'begin_time'))
55
+ .query_param(new_parameter(end_time, key: 'end_time'))
56
+ .query_param(new_parameter(sort_order, key: 'sort_order'))
57
+ .query_param(new_parameter(cursor, key: 'cursor'))
58
+ .query_param(new_parameter(location_id, key: 'location_id'))
59
+ .query_param(new_parameter(total, key: 'total'))
60
+ .query_param(new_parameter(last_4, key: 'last_4'))
61
+ .query_param(new_parameter(card_brand, key: 'card_brand'))
62
+ .query_param(new_parameter(limit, key: 'limit'))
63
+ .header_param(new_parameter('application/json', key: 'accept'))
64
+ .auth(Single.new('global')))
65
+ .response(new_response_handler
66
+ .deserializer(APIHelper.method(:json_deserialize))
67
+ .is_api_response(true)
68
+ .convertor(ApiResponse.method(:create)))
69
+ .execute
87
70
  end
88
71
 
89
72
  # Creates a payment using the provided source. You can use this endpoint
@@ -99,32 +82,20 @@ module Square
99
82
  # object definition for field details.
100
83
  # @return [CreatePaymentResponse Hash] response from the API call
101
84
  def create_payment(body:)
102
- # Prepare query url.
103
- _query_builder = config.get_base_uri
104
- _query_builder << '/v2/payments'
105
- _query_url = APIHelper.clean_url _query_builder
106
-
107
- # Prepare headers.
108
- _headers = {
109
- 'accept' => 'application/json',
110
- 'Content-Type' => 'application/json'
111
- }
112
-
113
- # Prepare and execute HttpRequest.
114
- _request = config.http_client.post(
115
- _query_url,
116
- headers: _headers,
117
- parameters: body.to_json
118
- )
119
- OAuth2.apply(config, _request)
120
- _response = execute_request(_request)
121
-
122
- # Return appropriate response type.
123
- decoded = APIHelper.json_deserialize(_response.raw_body)
124
- _errors = APIHelper.map_response(decoded, ['errors'])
125
- ApiResponse.new(
126
- _response, data: decoded, errors: _errors
127
- )
85
+ new_api_call_builder
86
+ .request(new_request_builder(HttpMethodEnum::POST,
87
+ '/v2/payments',
88
+ 'default')
89
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
90
+ .body_param(new_parameter(body))
91
+ .header_param(new_parameter('application/json', key: 'accept'))
92
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
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
128
99
  end
129
100
 
130
101
  # Cancels (voids) a payment identified by the idempotency key that is
@@ -147,32 +118,20 @@ module Square
147
118
  # corresponding object definition for field details.
148
119
  # @return [CancelPaymentByIdempotencyKeyResponse Hash] response from the API call
149
120
  def cancel_payment_by_idempotency_key(body:)
150
- # Prepare query url.
151
- _query_builder = config.get_base_uri
152
- _query_builder << '/v2/payments/cancel'
153
- _query_url = APIHelper.clean_url _query_builder
154
-
155
- # Prepare headers.
156
- _headers = {
157
- 'accept' => 'application/json',
158
- 'Content-Type' => 'application/json'
159
- }
160
-
161
- # Prepare and execute HttpRequest.
162
- _request = config.http_client.post(
163
- _query_url,
164
- headers: _headers,
165
- parameters: body.to_json
166
- )
167
- OAuth2.apply(config, _request)
168
- _response = execute_request(_request)
169
-
170
- # Return appropriate response type.
171
- decoded = APIHelper.json_deserialize(_response.raw_body)
172
- _errors = APIHelper.map_response(decoded, ['errors'])
173
- ApiResponse.new(
174
- _response, data: decoded, errors: _errors
175
- )
121
+ new_api_call_builder
122
+ .request(new_request_builder(HttpMethodEnum::POST,
123
+ '/v2/payments/cancel',
124
+ 'default')
125
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
126
+ .body_param(new_parameter(body))
127
+ .header_param(new_parameter('application/json', key: 'accept'))
128
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
129
+ .auth(Single.new('global')))
130
+ .response(new_response_handler
131
+ .deserializer(APIHelper.method(:json_deserialize))
132
+ .is_api_response(true)
133
+ .convertor(ApiResponse.method(:create)))
134
+ .execute
176
135
  end
177
136
 
178
137
  # Retrieves details for a specific payment.
@@ -180,34 +139,19 @@ module Square
180
139
  # payment.
181
140
  # @return [GetPaymentResponse Hash] response from the API call
182
141
  def get_payment(payment_id:)
183
- # Prepare query url.
184
- _query_builder = config.get_base_uri
185
- _query_builder << '/v2/payments/{payment_id}'
186
- _query_builder = APIHelper.append_url_with_template_parameters(
187
- _query_builder,
188
- 'payment_id' => { 'value' => payment_id, 'encode' => true }
189
- )
190
- _query_url = APIHelper.clean_url _query_builder
191
-
192
- # Prepare headers.
193
- _headers = {
194
- 'accept' => 'application/json'
195
- }
196
-
197
- # Prepare and execute HttpRequest.
198
- _request = config.http_client.get(
199
- _query_url,
200
- headers: _headers
201
- )
202
- OAuth2.apply(config, _request)
203
- _response = execute_request(_request)
204
-
205
- # Return appropriate response type.
206
- decoded = APIHelper.json_deserialize(_response.raw_body)
207
- _errors = APIHelper.map_response(decoded, ['errors'])
208
- ApiResponse.new(
209
- _response, data: decoded, errors: _errors
210
- )
142
+ new_api_call_builder
143
+ .request(new_request_builder(HttpMethodEnum::GET,
144
+ '/v2/payments/{payment_id}',
145
+ 'default')
146
+ .template_param(new_parameter(payment_id, key: 'payment_id')
147
+ .should_encode(true))
148
+ .header_param(new_parameter('application/json', key: 'accept'))
149
+ .auth(Single.new('global')))
150
+ .response(new_response_handler
151
+ .deserializer(APIHelper.method(:json_deserialize))
152
+ .is_api_response(true)
153
+ .convertor(ApiResponse.method(:create)))
154
+ .execute
211
155
  end
212
156
 
213
157
  # Updates a payment with the APPROVED status.
@@ -220,36 +164,22 @@ module Square
220
164
  # @return [UpdatePaymentResponse Hash] response from the API call
221
165
  def update_payment(payment_id:,
222
166
  body:)
223
- # Prepare query url.
224
- _query_builder = config.get_base_uri
225
- _query_builder << '/v2/payments/{payment_id}'
226
- _query_builder = APIHelper.append_url_with_template_parameters(
227
- _query_builder,
228
- 'payment_id' => { 'value' => payment_id, 'encode' => true }
229
- )
230
- _query_url = APIHelper.clean_url _query_builder
231
-
232
- # Prepare headers.
233
- _headers = {
234
- 'accept' => 'application/json',
235
- 'Content-Type' => 'application/json'
236
- }
237
-
238
- # Prepare and execute HttpRequest.
239
- _request = config.http_client.put(
240
- _query_url,
241
- headers: _headers,
242
- parameters: body.to_json
243
- )
244
- OAuth2.apply(config, _request)
245
- _response = execute_request(_request)
246
-
247
- # Return appropriate response type.
248
- decoded = APIHelper.json_deserialize(_response.raw_body)
249
- _errors = APIHelper.map_response(decoded, ['errors'])
250
- ApiResponse.new(
251
- _response, data: decoded, errors: _errors
252
- )
167
+ new_api_call_builder
168
+ .request(new_request_builder(HttpMethodEnum::PUT,
169
+ '/v2/payments/{payment_id}',
170
+ 'default')
171
+ .template_param(new_parameter(payment_id, key: 'payment_id')
172
+ .should_encode(true))
173
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
174
+ .body_param(new_parameter(body))
175
+ .header_param(new_parameter('application/json', key: 'accept'))
176
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
177
+ .auth(Single.new('global')))
178
+ .response(new_response_handler
179
+ .deserializer(APIHelper.method(:json_deserialize))
180
+ .is_api_response(true)
181
+ .convertor(ApiResponse.method(:create)))
182
+ .execute
253
183
  end
254
184
 
255
185
  # Cancels (voids) a payment. You can use this endpoint to cancel a payment
@@ -259,34 +189,19 @@ module Square
259
189
  # cancel.
260
190
  # @return [CancelPaymentResponse Hash] response from the API call
261
191
  def cancel_payment(payment_id:)
262
- # Prepare query url.
263
- _query_builder = config.get_base_uri
264
- _query_builder << '/v2/payments/{payment_id}/cancel'
265
- _query_builder = APIHelper.append_url_with_template_parameters(
266
- _query_builder,
267
- 'payment_id' => { 'value' => payment_id, 'encode' => true }
268
- )
269
- _query_url = APIHelper.clean_url _query_builder
270
-
271
- # Prepare headers.
272
- _headers = {
273
- 'accept' => 'application/json'
274
- }
275
-
276
- # Prepare and execute HttpRequest.
277
- _request = config.http_client.post(
278
- _query_url,
279
- headers: _headers
280
- )
281
- OAuth2.apply(config, _request)
282
- _response = execute_request(_request)
283
-
284
- # Return appropriate response type.
285
- decoded = APIHelper.json_deserialize(_response.raw_body)
286
- _errors = APIHelper.map_response(decoded, ['errors'])
287
- ApiResponse.new(
288
- _response, data: decoded, errors: _errors
289
- )
192
+ new_api_call_builder
193
+ .request(new_request_builder(HttpMethodEnum::POST,
194
+ '/v2/payments/{payment_id}/cancel',
195
+ 'default')
196
+ .template_param(new_parameter(payment_id, key: 'payment_id')
197
+ .should_encode(true))
198
+ .header_param(new_parameter('application/json', key: 'accept'))
199
+ .auth(Single.new('global')))
200
+ .response(new_response_handler
201
+ .deserializer(APIHelper.method(:json_deserialize))
202
+ .is_api_response(true)
203
+ .convertor(ApiResponse.method(:create)))
204
+ .execute
290
205
  end
291
206
 
292
207
  # Completes (captures) a payment.
@@ -302,36 +217,22 @@ module Square
302
217
  # @return [CompletePaymentResponse Hash] response from the API call
303
218
  def complete_payment(payment_id:,
304
219
  body:)
305
- # Prepare query url.
306
- _query_builder = config.get_base_uri
307
- _query_builder << '/v2/payments/{payment_id}/complete'
308
- _query_builder = APIHelper.append_url_with_template_parameters(
309
- _query_builder,
310
- 'payment_id' => { 'value' => payment_id, 'encode' => true }
311
- )
312
- _query_url = APIHelper.clean_url _query_builder
313
-
314
- # Prepare headers.
315
- _headers = {
316
- 'accept' => 'application/json',
317
- 'Content-Type' => 'application/json'
318
- }
319
-
320
- # Prepare and execute HttpRequest.
321
- _request = config.http_client.post(
322
- _query_url,
323
- headers: _headers,
324
- parameters: body.to_json
325
- )
326
- OAuth2.apply(config, _request)
327
- _response = execute_request(_request)
328
-
329
- # Return appropriate response type.
330
- decoded = APIHelper.json_deserialize(_response.raw_body)
331
- _errors = APIHelper.map_response(decoded, ['errors'])
332
- ApiResponse.new(
333
- _response, data: decoded, errors: _errors
334
- )
220
+ new_api_call_builder
221
+ .request(new_request_builder(HttpMethodEnum::POST,
222
+ '/v2/payments/{payment_id}/complete',
223
+ 'default')
224
+ .template_param(new_parameter(payment_id, key: 'payment_id')
225
+ .should_encode(true))
226
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
227
+ .body_param(new_parameter(body))
228
+ .header_param(new_parameter('application/json', key: 'accept'))
229
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
230
+ .auth(Single.new('global')))
231
+ .response(new_response_handler
232
+ .deserializer(APIHelper.method(:json_deserialize))
233
+ .is_api_response(true)
234
+ .convertor(ApiResponse.method(:create)))
235
+ .execute
335
236
  end
336
237
  end
337
238
  end
@@ -1,16 +1,12 @@
1
1
  module Square
2
2
  # PayoutsApi
3
3
  class PayoutsApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
4
  # Retrieves a list of all payouts for the default location.
9
5
  # You can filter payouts by location ID, status, time range, and order them
10
6
  # in ascending or descending order.
11
7
  # To call this endpoint, set `PAYOUTS_READ` for the OAuth scope.
12
8
  # @param [String] location_id Optional parameter: The ID of the location for
13
- # which to list the payouts. By default, payouts are returned for the
9
+ # which to list the payouts. By default, payouts are returned for the
14
10
  # default (main) location associated with the seller.
15
11
  # @param [PayoutStatus] status Optional parameter: If provided, only payouts
16
12
  # with the given status are returned.
@@ -24,9 +20,9 @@ module Square
24
20
  # @param [String] cursor Optional parameter: A pagination cursor returned by
25
21
  # a previous call to this endpoint. Provide this cursor to retrieve the next
26
22
  # set of results for the original query. For more information, see
27
- # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
28
- # . If request parameters change between requests, subsequent results may
29
- # contain duplicates or missing records.
23
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
24
+ # atterns/pagination). If request parameters change between requests,
25
+ # subsequent results may contain duplicates or missing records.
30
26
  # @param [Integer] limit Optional parameter: The maximum number of results
31
27
  # to be returned in a single page. It is possible to receive fewer results
32
28
  # than the specified limit on a given page. The default value of 100 is also
@@ -40,40 +36,24 @@ module Square
40
36
  sort_order: nil,
41
37
  cursor: nil,
42
38
  limit: nil)
43
- # Prepare query url.
44
- _query_builder = config.get_base_uri
45
- _query_builder << '/v2/payouts'
46
- _query_builder = APIHelper.append_url_with_query_parameters(
47
- _query_builder,
48
- 'location_id' => location_id,
49
- 'status' => status,
50
- 'begin_time' => begin_time,
51
- 'end_time' => end_time,
52
- 'sort_order' => sort_order,
53
- 'cursor' => cursor,
54
- 'limit' => limit
55
- )
56
- _query_url = APIHelper.clean_url _query_builder
57
-
58
- # Prepare headers.
59
- _headers = {
60
- 'accept' => 'application/json'
61
- }
62
-
63
- # Prepare and execute HttpRequest.
64
- _request = config.http_client.get(
65
- _query_url,
66
- headers: _headers
67
- )
68
- OAuth2.apply(config, _request)
69
- _response = execute_request(_request)
70
-
71
- # Return appropriate response type.
72
- decoded = APIHelper.json_deserialize(_response.raw_body)
73
- _errors = APIHelper.map_response(decoded, ['errors'])
74
- ApiResponse.new(
75
- _response, data: decoded, errors: _errors
76
- )
39
+ new_api_call_builder
40
+ .request(new_request_builder(HttpMethodEnum::GET,
41
+ '/v2/payouts',
42
+ 'default')
43
+ .query_param(new_parameter(location_id, key: 'location_id'))
44
+ .query_param(new_parameter(status, key: 'status'))
45
+ .query_param(new_parameter(begin_time, key: 'begin_time'))
46
+ .query_param(new_parameter(end_time, key: 'end_time'))
47
+ .query_param(new_parameter(sort_order, key: 'sort_order'))
48
+ .query_param(new_parameter(cursor, key: 'cursor'))
49
+ .query_param(new_parameter(limit, key: 'limit'))
50
+ .header_param(new_parameter('application/json', key: 'accept'))
51
+ .auth(Single.new('global')))
52
+ .response(new_response_handler
53
+ .deserializer(APIHelper.method(:json_deserialize))
54
+ .is_api_response(true)
55
+ .convertor(ApiResponse.method(:create)))
56
+ .execute
77
57
  end
78
58
 
79
59
  # Retrieves details of a specific payout identified by a payout ID.
@@ -82,34 +62,19 @@ module Square
82
62
  # retrieve the information for.
83
63
  # @return [GetPayoutResponse Hash] response from the API call
84
64
  def get_payout(payout_id:)
85
- # Prepare query url.
86
- _query_builder = config.get_base_uri
87
- _query_builder << '/v2/payouts/{payout_id}'
88
- _query_builder = APIHelper.append_url_with_template_parameters(
89
- _query_builder,
90
- 'payout_id' => { 'value' => payout_id, 'encode' => true }
91
- )
92
- _query_url = APIHelper.clean_url _query_builder
93
-
94
- # Prepare headers.
95
- _headers = {
96
- 'accept' => 'application/json'
97
- }
98
-
99
- # Prepare and execute HttpRequest.
100
- _request = config.http_client.get(
101
- _query_url,
102
- headers: _headers
103
- )
104
- OAuth2.apply(config, _request)
105
- _response = execute_request(_request)
106
-
107
- # Return appropriate response type.
108
- decoded = APIHelper.json_deserialize(_response.raw_body)
109
- _errors = APIHelper.map_response(decoded, ['errors'])
110
- ApiResponse.new(
111
- _response, data: decoded, errors: _errors
112
- )
65
+ new_api_call_builder
66
+ .request(new_request_builder(HttpMethodEnum::GET,
67
+ '/v2/payouts/{payout_id}',
68
+ 'default')
69
+ .template_param(new_parameter(payout_id, key: 'payout_id')
70
+ .should_encode(true))
71
+ .header_param(new_parameter('application/json', key: 'accept'))
72
+ .auth(Single.new('global')))
73
+ .response(new_response_handler
74
+ .deserializer(APIHelper.method(:json_deserialize))
75
+ .is_api_response(true)
76
+ .convertor(ApiResponse.method(:create)))
77
+ .execute
113
78
  end
114
79
 
115
80
  # Retrieves a list of all payout entries for a specific payout.
@@ -121,9 +86,9 @@ module Square
121
86
  # @param [String] cursor Optional parameter: A pagination cursor returned by
122
87
  # a previous call to this endpoint. Provide this cursor to retrieve the next
123
88
  # set of results for the original query. For more information, see
124
- # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
125
- # . If request parameters change between requests, subsequent results may
126
- # contain duplicates or missing records.
89
+ # [Pagination](https://developer.squareup.com/docs/build-basics/common-api-p
90
+ # atterns/pagination). If request parameters change between requests,
91
+ # subsequent results may contain duplicates or missing records.
127
92
  # @param [Integer] limit Optional parameter: The maximum number of results
128
93
  # to be returned in a single page. It is possible to receive fewer results
129
94
  # than the specified limit on a given page. The default value of 100 is also
@@ -134,40 +99,22 @@ module Square
134
99
  sort_order: nil,
135
100
  cursor: nil,
136
101
  limit: nil)
137
- # Prepare query url.
138
- _query_builder = config.get_base_uri
139
- _query_builder << '/v2/payouts/{payout_id}/payout-entries'
140
- _query_builder = APIHelper.append_url_with_template_parameters(
141
- _query_builder,
142
- 'payout_id' => { 'value' => payout_id, 'encode' => true }
143
- )
144
- _query_builder = APIHelper.append_url_with_query_parameters(
145
- _query_builder,
146
- 'sort_order' => sort_order,
147
- 'cursor' => cursor,
148
- 'limit' => limit
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(
169
- _response, data: decoded, errors: _errors
170
- )
102
+ new_api_call_builder
103
+ .request(new_request_builder(HttpMethodEnum::GET,
104
+ '/v2/payouts/{payout_id}/payout-entries',
105
+ 'default')
106
+ .template_param(new_parameter(payout_id, key: 'payout_id')
107
+ .should_encode(true))
108
+ .query_param(new_parameter(sort_order, key: 'sort_order'))
109
+ .query_param(new_parameter(cursor, key: 'cursor'))
110
+ .query_param(new_parameter(limit, key: 'limit'))
111
+ .header_param(new_parameter('application/json', key: 'accept'))
112
+ .auth(Single.new('global')))
113
+ .response(new_response_handler
114
+ .deserializer(APIHelper.method(:json_deserialize))
115
+ .is_api_response(true)
116
+ .convertor(ApiResponse.method(:create)))
117
+ .execute
171
118
  end
172
119
  end
173
120
  end