square.rb 26.1.0.20230119 → 26.2.0.20230315

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/square/api/apple_pay_api.rb +14 -30
  3. data/lib/square/api/bank_accounts_api.rb +40 -90
  4. data/lib/square/api/base_api.rb +42 -42
  5. data/lib/square/api/booking_custom_attributes_api.rb +164 -329
  6. data/lib/square/api/bookings_api.rb +135 -260
  7. data/lib/square/api/cards_api.rb +56 -118
  8. data/lib/square/api/cash_drawers_api.rb +47 -103
  9. data/lib/square/api/catalog_api.rb +197 -423
  10. data/lib/square/api/checkout_api.rb +85 -175
  11. data/lib/square/api/customer_custom_attributes_api.rb +150 -303
  12. data/lib/square/api/customer_groups_api.rb +69 -145
  13. data/lib/square/api/customer_segments_api.rb +26 -61
  14. data/lib/square/api/customers_api.rb +147 -294
  15. data/lib/square/api/devices_api.rb +42 -89
  16. data/lib/square/api/disputes_api.rb +130 -288
  17. data/lib/square/api/employees_api.rb +28 -63
  18. data/lib/square/api/gift_card_activities_api.rb +33 -65
  19. data/lib/square/api/gift_cards_api.rb +103 -202
  20. data/lib/square/api/inventory_api.rb +179 -366
  21. data/lib/square/api/invoices_api.rb +118 -237
  22. data/lib/square/api/labor_api.rb +223 -459
  23. data/lib/square/api/location_custom_attributes_api.rb +166 -331
  24. data/lib/square/api/locations_api.rb +54 -112
  25. data/lib/square/api/loyalty_api.rb +259 -512
  26. data/lib/square/api/merchants_api.rb +25 -60
  27. data/lib/square/api/mobile_authorization_api.rb +14 -30
  28. data/lib/square/api/o_auth_api.rb +54 -109
  29. data/lib/square/api/order_custom_attributes_api.rb +168 -333
  30. data/lib/square/api/orders_api.rb +115 -222
  31. data/lib/square/api/payments_api.rb +106 -208
  32. data/lib/square/api/payouts_api.rb +47 -100
  33. data/lib/square/api/refunds_api.rb +46 -93
  34. data/lib/square/api/sites_api.rb +11 -28
  35. data/lib/square/api/snippets_api.rb +42 -90
  36. data/lib/square/api/subscriptions_api.rb +150 -299
  37. data/lib/square/api/team_api.rb +114 -224
  38. data/lib/square/api/terminal_api.rb +162 -328
  39. data/lib/square/api/transactions_api.rb +62 -126
  40. data/lib/square/api/v1_transactions_api.rb +155 -296
  41. data/lib/square/api/vendors_api.rb +99 -192
  42. data/lib/square/api/webhook_subscriptions_api.rb +115 -235
  43. data/lib/square/api_helper.rb +1 -437
  44. data/lib/square/client.rb +77 -47
  45. data/lib/square/configuration.rb +28 -53
  46. data/lib/square/exceptions/api_exception.rb +1 -11
  47. data/lib/square/http/api_response.rb +13 -19
  48. data/lib/square/http/auth/o_auth2.rb +14 -7
  49. data/lib/square/http/http_call_back.rb +1 -15
  50. data/lib/square/http/http_method_enum.rb +1 -4
  51. data/lib/square/http/http_request.rb +1 -45
  52. data/lib/square/http/http_response.rb +1 -20
  53. data/lib/square/utilities/date_time_helper.rb +1 -146
  54. data/lib/square/utilities/file_wrapper.rb +5 -5
  55. data/lib/square.rb +6 -6
  56. data/spec/user_journey_spec.rb +2 -2
  57. data/test/api/api_test_base.rb +13 -5
  58. data/test/api/test_catalog_api.rb +5 -4
  59. data/test/api/test_customers_api.rb +3 -2
  60. data/test/api/test_employees_api.rb +4 -3
  61. data/test/api/test_labor_api.rb +6 -5
  62. data/test/api/test_locations_api.rb +3 -2
  63. data/test/api/test_merchants_api.rb +4 -3
  64. data/test/api/test_payments_api.rb +4 -3
  65. data/test/api/test_refunds_api.rb +4 -3
  66. metadata +11 -111
  67. data/lib/square/exceptions/validation_exception.rb +0 -13
  68. data/lib/square/http/faraday_client.rb +0 -93
  69. data/lib/square/http/http_client.rb +0 -118
  70. data/test/test_helper.rb +0 -89
@@ -1,10 +1,6 @@
1
1
  module Square
2
2
  # LaborApi
3
3
  class LaborApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
4
  # Returns a paginated list of `BreakType` instances for a business.
9
5
  # @param [String] location_id Optional parameter: Filter the returned
10
6
  # `BreakType` results to only those that are associated with the specified
@@ -18,36 +14,20 @@ module Square
18
14
  def list_break_types(location_id: nil,
19
15
  limit: nil,
20
16
  cursor: nil)
21
- # Prepare query url.
22
- _query_builder = config.get_base_uri
23
- _query_builder << '/v2/labor/break-types'
24
- _query_builder = APIHelper.append_url_with_query_parameters(
25
- _query_builder,
26
- 'location_id' => location_id,
27
- 'limit' => limit,
28
- 'cursor' => cursor
29
- )
30
- _query_url = APIHelper.clean_url _query_builder
31
-
32
- # Prepare headers.
33
- _headers = {
34
- 'accept' => 'application/json'
35
- }
36
-
37
- # Prepare and execute HttpRequest.
38
- _request = config.http_client.get(
39
- _query_url,
40
- headers: _headers
41
- )
42
- OAuth2.apply(config, _request)
43
- _response = execute_request(_request)
44
-
45
- # Return appropriate response type.
46
- decoded = APIHelper.json_deserialize(_response.raw_body)
47
- _errors = APIHelper.map_response(decoded, ['errors'])
48
- ApiResponse.new(
49
- _response, data: decoded, errors: _errors
50
- )
17
+ new_api_call_builder
18
+ .request(new_request_builder(HttpMethodEnum::GET,
19
+ '/v2/labor/break-types',
20
+ 'default')
21
+ .query_param(new_parameter(location_id, key: 'location_id'))
22
+ .query_param(new_parameter(limit, key: 'limit'))
23
+ .query_param(new_parameter(cursor, key: 'cursor'))
24
+ .header_param(new_parameter('application/json', key: 'accept'))
25
+ .auth(Single.new('global')))
26
+ .response(new_response_handler
27
+ .deserializer(APIHelper.method(:json_deserialize))
28
+ .is_api_response(true)
29
+ .convertor(ApiResponse.method(:create)))
30
+ .execute
51
31
  end
52
32
 
53
33
  # Creates a new `BreakType`.
@@ -68,32 +48,20 @@ module Square
68
48
  # object definition for field details.
69
49
  # @return [CreateBreakTypeResponse Hash] response from the API call
70
50
  def create_break_type(body:)
71
- # Prepare query url.
72
- _query_builder = config.get_base_uri
73
- _query_builder << '/v2/labor/break-types'
74
- _query_url = APIHelper.clean_url _query_builder
75
-
76
- # Prepare headers.
77
- _headers = {
78
- 'accept' => 'application/json',
79
- 'Content-Type' => 'application/json'
80
- }
81
-
82
- # Prepare and execute HttpRequest.
83
- _request = config.http_client.post(
84
- _query_url,
85
- headers: _headers,
86
- parameters: body.to_json
87
- )
88
- OAuth2.apply(config, _request)
89
- _response = execute_request(_request)
90
-
91
- # Return appropriate response type.
92
- decoded = APIHelper.json_deserialize(_response.raw_body)
93
- _errors = APIHelper.map_response(decoded, ['errors'])
94
- ApiResponse.new(
95
- _response, data: decoded, errors: _errors
96
- )
51
+ new_api_call_builder
52
+ .request(new_request_builder(HttpMethodEnum::POST,
53
+ '/v2/labor/break-types',
54
+ 'default')
55
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
56
+ .body_param(new_parameter(body))
57
+ .header_param(new_parameter('application/json', key: 'accept'))
58
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
59
+ .auth(Single.new('global')))
60
+ .response(new_response_handler
61
+ .deserializer(APIHelper.method(:json_deserialize))
62
+ .is_api_response(true)
63
+ .convertor(ApiResponse.method(:create)))
64
+ .execute
97
65
  end
98
66
 
99
67
  # Deletes an existing `BreakType`.
@@ -102,34 +70,19 @@ module Square
102
70
  # deleted.
103
71
  # @return [DeleteBreakTypeResponse Hash] response from the API call
104
72
  def delete_break_type(id:)
105
- # Prepare query url.
106
- _query_builder = config.get_base_uri
107
- _query_builder << '/v2/labor/break-types/{id}'
108
- _query_builder = APIHelper.append_url_with_template_parameters(
109
- _query_builder,
110
- 'id' => { 'value' => id, 'encode' => true }
111
- )
112
- _query_url = APIHelper.clean_url _query_builder
113
-
114
- # Prepare headers.
115
- _headers = {
116
- 'accept' => 'application/json'
117
- }
118
-
119
- # Prepare and execute HttpRequest.
120
- _request = config.http_client.delete(
121
- _query_url,
122
- headers: _headers
123
- )
124
- OAuth2.apply(config, _request)
125
- _response = execute_request(_request)
126
-
127
- # Return appropriate response type.
128
- decoded = APIHelper.json_deserialize(_response.raw_body)
129
- _errors = APIHelper.map_response(decoded, ['errors'])
130
- ApiResponse.new(
131
- _response, data: decoded, errors: _errors
132
- )
73
+ new_api_call_builder
74
+ .request(new_request_builder(HttpMethodEnum::DELETE,
75
+ '/v2/labor/break-types/{id}',
76
+ 'default')
77
+ .template_param(new_parameter(id, key: 'id')
78
+ .should_encode(true))
79
+ .header_param(new_parameter('application/json', key: 'accept'))
80
+ .auth(Single.new('global')))
81
+ .response(new_response_handler
82
+ .deserializer(APIHelper.method(:json_deserialize))
83
+ .is_api_response(true)
84
+ .convertor(ApiResponse.method(:create)))
85
+ .execute
133
86
  end
134
87
 
135
88
  # Returns a single `BreakType` specified by `id`.
@@ -137,34 +90,19 @@ module Square
137
90
  # retrieved.
138
91
  # @return [GetBreakTypeResponse Hash] response from the API call
139
92
  def get_break_type(id:)
140
- # Prepare query url.
141
- _query_builder = config.get_base_uri
142
- _query_builder << '/v2/labor/break-types/{id}'
143
- _query_builder = APIHelper.append_url_with_template_parameters(
144
- _query_builder,
145
- 'id' => { 'value' => id, 'encode' => true }
146
- )
147
- _query_url = APIHelper.clean_url _query_builder
148
-
149
- # Prepare headers.
150
- _headers = {
151
- 'accept' => 'application/json'
152
- }
153
-
154
- # Prepare and execute HttpRequest.
155
- _request = config.http_client.get(
156
- _query_url,
157
- headers: _headers
158
- )
159
- OAuth2.apply(config, _request)
160
- _response = execute_request(_request)
161
-
162
- # Return appropriate response type.
163
- decoded = APIHelper.json_deserialize(_response.raw_body)
164
- _errors = APIHelper.map_response(decoded, ['errors'])
165
- ApiResponse.new(
166
- _response, data: decoded, errors: _errors
167
- )
93
+ new_api_call_builder
94
+ .request(new_request_builder(HttpMethodEnum::GET,
95
+ '/v2/labor/break-types/{id}',
96
+ 'default')
97
+ .template_param(new_parameter(id, key: 'id')
98
+ .should_encode(true))
99
+ .header_param(new_parameter('application/json', key: 'accept'))
100
+ .auth(Single.new('global')))
101
+ .response(new_response_handler
102
+ .deserializer(APIHelper.method(:json_deserialize))
103
+ .is_api_response(true)
104
+ .convertor(ApiResponse.method(:create)))
105
+ .execute
168
106
  end
169
107
 
170
108
  # Updates an existing `BreakType`.
@@ -176,36 +114,22 @@ module Square
176
114
  # @return [UpdateBreakTypeResponse Hash] response from the API call
177
115
  def update_break_type(id:,
178
116
  body:)
179
- # Prepare query url.
180
- _query_builder = config.get_base_uri
181
- _query_builder << '/v2/labor/break-types/{id}'
182
- _query_builder = APIHelper.append_url_with_template_parameters(
183
- _query_builder,
184
- 'id' => { 'value' => id, 'encode' => true }
185
- )
186
- _query_url = APIHelper.clean_url _query_builder
187
-
188
- # Prepare headers.
189
- _headers = {
190
- 'accept' => 'application/json',
191
- 'Content-Type' => 'application/json'
192
- }
193
-
194
- # Prepare and execute HttpRequest.
195
- _request = config.http_client.put(
196
- _query_url,
197
- headers: _headers,
198
- parameters: body.to_json
199
- )
200
- OAuth2.apply(config, _request)
201
- _response = execute_request(_request)
202
-
203
- # Return appropriate response type.
204
- decoded = APIHelper.json_deserialize(_response.raw_body)
205
- _errors = APIHelper.map_response(decoded, ['errors'])
206
- ApiResponse.new(
207
- _response, data: decoded, errors: _errors
208
- )
117
+ new_api_call_builder
118
+ .request(new_request_builder(HttpMethodEnum::PUT,
119
+ '/v2/labor/break-types/{id}',
120
+ 'default')
121
+ .template_param(new_parameter(id, key: 'id')
122
+ .should_encode(true))
123
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
124
+ .body_param(new_parameter(body))
125
+ .header_param(new_parameter('application/json', key: 'accept'))
126
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
127
+ .auth(Single.new('global')))
128
+ .response(new_response_handler
129
+ .deserializer(APIHelper.method(:json_deserialize))
130
+ .is_api_response(true)
131
+ .convertor(ApiResponse.method(:create)))
132
+ .execute
209
133
  end
210
134
 
211
135
  # Returns a paginated list of `EmployeeWage` instances for a business.
@@ -221,36 +145,20 @@ module Square
221
145
  limit: nil,
222
146
  cursor: nil)
223
147
  warn 'Endpoint list_employee_wages in LaborApi is deprecated'
224
- # Prepare query url.
225
- _query_builder = config.get_base_uri
226
- _query_builder << '/v2/labor/employee-wages'
227
- _query_builder = APIHelper.append_url_with_query_parameters(
228
- _query_builder,
229
- 'employee_id' => employee_id,
230
- 'limit' => limit,
231
- 'cursor' => cursor
232
- )
233
- _query_url = APIHelper.clean_url _query_builder
234
-
235
- # Prepare headers.
236
- _headers = {
237
- 'accept' => 'application/json'
238
- }
239
-
240
- # Prepare and execute HttpRequest.
241
- _request = config.http_client.get(
242
- _query_url,
243
- headers: _headers
244
- )
245
- OAuth2.apply(config, _request)
246
- _response = execute_request(_request)
247
-
248
- # Return appropriate response type.
249
- decoded = APIHelper.json_deserialize(_response.raw_body)
250
- _errors = APIHelper.map_response(decoded, ['errors'])
251
- ApiResponse.new(
252
- _response, data: decoded, errors: _errors
253
- )
148
+ new_api_call_builder
149
+ .request(new_request_builder(HttpMethodEnum::GET,
150
+ '/v2/labor/employee-wages',
151
+ 'default')
152
+ .query_param(new_parameter(employee_id, key: 'employee_id'))
153
+ .query_param(new_parameter(limit, key: 'limit'))
154
+ .query_param(new_parameter(cursor, key: 'cursor'))
155
+ .header_param(new_parameter('application/json', key: 'accept'))
156
+ .auth(Single.new('global')))
157
+ .response(new_response_handler
158
+ .deserializer(APIHelper.method(:json_deserialize))
159
+ .is_api_response(true)
160
+ .convertor(ApiResponse.method(:create)))
161
+ .execute
254
162
  end
255
163
 
256
164
  # Returns a single `EmployeeWage` specified by `id`.
@@ -259,34 +167,19 @@ module Square
259
167
  # @return [GetEmployeeWageResponse Hash] response from the API call
260
168
  def get_employee_wage(id:)
261
169
  warn 'Endpoint get_employee_wage in LaborApi is deprecated'
262
- # Prepare query url.
263
- _query_builder = config.get_base_uri
264
- _query_builder << '/v2/labor/employee-wages/{id}'
265
- _query_builder = APIHelper.append_url_with_template_parameters(
266
- _query_builder,
267
- 'id' => { 'value' => 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.get(
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
- )
170
+ new_api_call_builder
171
+ .request(new_request_builder(HttpMethodEnum::GET,
172
+ '/v2/labor/employee-wages/{id}',
173
+ 'default')
174
+ .template_param(new_parameter(id, key: 'id')
175
+ .should_encode(true))
176
+ .header_param(new_parameter('application/json', key: 'accept'))
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
290
183
  end
291
184
 
292
185
  # Creates a new `Shift`.
@@ -311,32 +204,20 @@ module Square
311
204
  # definition for field details.
312
205
  # @return [CreateShiftResponse Hash] response from the API call
313
206
  def create_shift(body:)
314
- # Prepare query url.
315
- _query_builder = config.get_base_uri
316
- _query_builder << '/v2/labor/shifts'
317
- _query_url = APIHelper.clean_url _query_builder
318
-
319
- # Prepare headers.
320
- _headers = {
321
- 'accept' => 'application/json',
322
- 'Content-Type' => 'application/json'
323
- }
324
-
325
- # Prepare and execute HttpRequest.
326
- _request = config.http_client.post(
327
- _query_url,
328
- headers: _headers,
329
- parameters: body.to_json
330
- )
331
- OAuth2.apply(config, _request)
332
- _response = execute_request(_request)
333
-
334
- # Return appropriate response type.
335
- decoded = APIHelper.json_deserialize(_response.raw_body)
336
- _errors = APIHelper.map_response(decoded, ['errors'])
337
- ApiResponse.new(
338
- _response, data: decoded, errors: _errors
339
- )
207
+ new_api_call_builder
208
+ .request(new_request_builder(HttpMethodEnum::POST,
209
+ '/v2/labor/shifts',
210
+ 'default')
211
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
212
+ .body_param(new_parameter(body))
213
+ .header_param(new_parameter('application/json', key: 'accept'))
214
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
215
+ .auth(Single.new('global')))
216
+ .response(new_response_handler
217
+ .deserializer(APIHelper.method(:json_deserialize))
218
+ .is_api_response(true)
219
+ .convertor(ApiResponse.method(:create)))
220
+ .execute
340
221
  end
341
222
 
342
223
  # Returns a paginated list of `Shift` records for a business.
@@ -357,32 +238,20 @@ module Square
357
238
  # definition for field details.
358
239
  # @return [SearchShiftsResponse Hash] response from the API call
359
240
  def search_shifts(body:)
360
- # Prepare query url.
361
- _query_builder = config.get_base_uri
362
- _query_builder << '/v2/labor/shifts/search'
363
- _query_url = APIHelper.clean_url _query_builder
364
-
365
- # Prepare headers.
366
- _headers = {
367
- 'accept' => 'application/json',
368
- 'Content-Type' => 'application/json'
369
- }
370
-
371
- # Prepare and execute HttpRequest.
372
- _request = config.http_client.post(
373
- _query_url,
374
- headers: _headers,
375
- parameters: body.to_json
376
- )
377
- OAuth2.apply(config, _request)
378
- _response = execute_request(_request)
379
-
380
- # Return appropriate response type.
381
- decoded = APIHelper.json_deserialize(_response.raw_body)
382
- _errors = APIHelper.map_response(decoded, ['errors'])
383
- ApiResponse.new(
384
- _response, data: decoded, errors: _errors
385
- )
241
+ new_api_call_builder
242
+ .request(new_request_builder(HttpMethodEnum::POST,
243
+ '/v2/labor/shifts/search',
244
+ 'default')
245
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
246
+ .body_param(new_parameter(body))
247
+ .header_param(new_parameter('application/json', key: 'accept'))
248
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
249
+ .auth(Single.new('global')))
250
+ .response(new_response_handler
251
+ .deserializer(APIHelper.method(:json_deserialize))
252
+ .is_api_response(true)
253
+ .convertor(ApiResponse.method(:create)))
254
+ .execute
386
255
  end
387
256
 
388
257
  # Deletes a `Shift`.
@@ -390,34 +259,19 @@ module Square
390
259
  # deleted.
391
260
  # @return [DeleteShiftResponse Hash] response from the API call
392
261
  def delete_shift(id:)
393
- # Prepare query url.
394
- _query_builder = config.get_base_uri
395
- _query_builder << '/v2/labor/shifts/{id}'
396
- _query_builder = APIHelper.append_url_with_template_parameters(
397
- _query_builder,
398
- 'id' => { 'value' => id, 'encode' => true }
399
- )
400
- _query_url = APIHelper.clean_url _query_builder
401
-
402
- # Prepare headers.
403
- _headers = {
404
- 'accept' => 'application/json'
405
- }
406
-
407
- # Prepare and execute HttpRequest.
408
- _request = config.http_client.delete(
409
- _query_url,
410
- headers: _headers
411
- )
412
- OAuth2.apply(config, _request)
413
- _response = execute_request(_request)
414
-
415
- # Return appropriate response type.
416
- decoded = APIHelper.json_deserialize(_response.raw_body)
417
- _errors = APIHelper.map_response(decoded, ['errors'])
418
- ApiResponse.new(
419
- _response, data: decoded, errors: _errors
420
- )
262
+ new_api_call_builder
263
+ .request(new_request_builder(HttpMethodEnum::DELETE,
264
+ '/v2/labor/shifts/{id}',
265
+ 'default')
266
+ .template_param(new_parameter(id, key: 'id')
267
+ .should_encode(true))
268
+ .header_param(new_parameter('application/json', key: 'accept'))
269
+ .auth(Single.new('global')))
270
+ .response(new_response_handler
271
+ .deserializer(APIHelper.method(:json_deserialize))
272
+ .is_api_response(true)
273
+ .convertor(ApiResponse.method(:create)))
274
+ .execute
421
275
  end
422
276
 
423
277
  # Returns a single `Shift` specified by `id`.
@@ -425,34 +279,19 @@ module Square
425
279
  # retrieved.
426
280
  # @return [GetShiftResponse Hash] response from the API call
427
281
  def get_shift(id:)
428
- # Prepare query url.
429
- _query_builder = config.get_base_uri
430
- _query_builder << '/v2/labor/shifts/{id}'
431
- _query_builder = APIHelper.append_url_with_template_parameters(
432
- _query_builder,
433
- 'id' => { 'value' => id, 'encode' => true }
434
- )
435
- _query_url = APIHelper.clean_url _query_builder
436
-
437
- # Prepare headers.
438
- _headers = {
439
- 'accept' => 'application/json'
440
- }
441
-
442
- # Prepare and execute HttpRequest.
443
- _request = config.http_client.get(
444
- _query_url,
445
- headers: _headers
446
- )
447
- OAuth2.apply(config, _request)
448
- _response = execute_request(_request)
449
-
450
- # Return appropriate response type.
451
- decoded = APIHelper.json_deserialize(_response.raw_body)
452
- _errors = APIHelper.map_response(decoded, ['errors'])
453
- ApiResponse.new(
454
- _response, data: decoded, errors: _errors
455
- )
282
+ new_api_call_builder
283
+ .request(new_request_builder(HttpMethodEnum::GET,
284
+ '/v2/labor/shifts/{id}',
285
+ 'default')
286
+ .template_param(new_parameter(id, key: 'id')
287
+ .should_encode(true))
288
+ .header_param(new_parameter('application/json', key: 'accept'))
289
+ .auth(Single.new('global')))
290
+ .response(new_response_handler
291
+ .deserializer(APIHelper.method(:json_deserialize))
292
+ .is_api_response(true)
293
+ .convertor(ApiResponse.method(:create)))
294
+ .execute
456
295
  end
457
296
 
458
297
  # Updates an existing `Shift`.
@@ -470,36 +309,22 @@ module Square
470
309
  # @return [UpdateShiftResponse Hash] response from the API call
471
310
  def update_shift(id:,
472
311
  body:)
473
- # Prepare query url.
474
- _query_builder = config.get_base_uri
475
- _query_builder << '/v2/labor/shifts/{id}'
476
- _query_builder = APIHelper.append_url_with_template_parameters(
477
- _query_builder,
478
- 'id' => { 'value' => id, 'encode' => true }
479
- )
480
- _query_url = APIHelper.clean_url _query_builder
481
-
482
- # Prepare headers.
483
- _headers = {
484
- 'accept' => 'application/json',
485
- 'Content-Type' => 'application/json'
486
- }
487
-
488
- # Prepare and execute HttpRequest.
489
- _request = config.http_client.put(
490
- _query_url,
491
- headers: _headers,
492
- parameters: body.to_json
493
- )
494
- OAuth2.apply(config, _request)
495
- _response = execute_request(_request)
496
-
497
- # Return appropriate response type.
498
- decoded = APIHelper.json_deserialize(_response.raw_body)
499
- _errors = APIHelper.map_response(decoded, ['errors'])
500
- ApiResponse.new(
501
- _response, data: decoded, errors: _errors
502
- )
312
+ new_api_call_builder
313
+ .request(new_request_builder(HttpMethodEnum::PUT,
314
+ '/v2/labor/shifts/{id}',
315
+ 'default')
316
+ .template_param(new_parameter(id, key: 'id')
317
+ .should_encode(true))
318
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
319
+ .body_param(new_parameter(body))
320
+ .header_param(new_parameter('application/json', key: 'accept'))
321
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
322
+ .auth(Single.new('global')))
323
+ .response(new_response_handler
324
+ .deserializer(APIHelper.method(:json_deserialize))
325
+ .is_api_response(true)
326
+ .convertor(ApiResponse.method(:create)))
327
+ .execute
503
328
  end
504
329
 
505
330
  # Returns a paginated list of `TeamMemberWage` instances for a business.
@@ -514,36 +339,20 @@ module Square
514
339
  def list_team_member_wages(team_member_id: nil,
515
340
  limit: nil,
516
341
  cursor: nil)
517
- # Prepare query url.
518
- _query_builder = config.get_base_uri
519
- _query_builder << '/v2/labor/team-member-wages'
520
- _query_builder = APIHelper.append_url_with_query_parameters(
521
- _query_builder,
522
- 'team_member_id' => team_member_id,
523
- 'limit' => limit,
524
- 'cursor' => cursor
525
- )
526
- _query_url = APIHelper.clean_url _query_builder
527
-
528
- # Prepare headers.
529
- _headers = {
530
- 'accept' => 'application/json'
531
- }
532
-
533
- # Prepare and execute HttpRequest.
534
- _request = config.http_client.get(
535
- _query_url,
536
- headers: _headers
537
- )
538
- OAuth2.apply(config, _request)
539
- _response = execute_request(_request)
540
-
541
- # Return appropriate response type.
542
- decoded = APIHelper.json_deserialize(_response.raw_body)
543
- _errors = APIHelper.map_response(decoded, ['errors'])
544
- ApiResponse.new(
545
- _response, data: decoded, errors: _errors
546
- )
342
+ new_api_call_builder
343
+ .request(new_request_builder(HttpMethodEnum::GET,
344
+ '/v2/labor/team-member-wages',
345
+ 'default')
346
+ .query_param(new_parameter(team_member_id, key: 'team_member_id'))
347
+ .query_param(new_parameter(limit, key: 'limit'))
348
+ .query_param(new_parameter(cursor, key: 'cursor'))
349
+ .header_param(new_parameter('application/json', key: 'accept'))
350
+ .auth(Single.new('global')))
351
+ .response(new_response_handler
352
+ .deserializer(APIHelper.method(:json_deserialize))
353
+ .is_api_response(true)
354
+ .convertor(ApiResponse.method(:create)))
355
+ .execute
547
356
  end
548
357
 
549
358
  # Returns a single `TeamMemberWage` specified by `id `.
@@ -551,34 +360,19 @@ module Square
551
360
  # being retrieved.
552
361
  # @return [GetTeamMemberWageResponse Hash] response from the API call
553
362
  def get_team_member_wage(id:)
554
- # Prepare query url.
555
- _query_builder = config.get_base_uri
556
- _query_builder << '/v2/labor/team-member-wages/{id}'
557
- _query_builder = APIHelper.append_url_with_template_parameters(
558
- _query_builder,
559
- 'id' => { 'value' => id, 'encode' => true }
560
- )
561
- _query_url = APIHelper.clean_url _query_builder
562
-
563
- # Prepare headers.
564
- _headers = {
565
- 'accept' => 'application/json'
566
- }
567
-
568
- # Prepare and execute HttpRequest.
569
- _request = config.http_client.get(
570
- _query_url,
571
- headers: _headers
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
- )
363
+ new_api_call_builder
364
+ .request(new_request_builder(HttpMethodEnum::GET,
365
+ '/v2/labor/team-member-wages/{id}',
366
+ 'default')
367
+ .template_param(new_parameter(id, key: 'id')
368
+ .should_encode(true))
369
+ .header_param(new_parameter('application/json', key: 'accept'))
370
+ .auth(Single.new('global')))
371
+ .response(new_response_handler
372
+ .deserializer(APIHelper.method(:json_deserialize))
373
+ .is_api_response(true)
374
+ .convertor(ApiResponse.method(:create)))
375
+ .execute
582
376
  end
583
377
 
584
378
  # Returns a list of `WorkweekConfig` instances for a business.
@@ -589,35 +383,19 @@ module Square
589
383
  # @return [ListWorkweekConfigsResponse Hash] response from the API call
590
384
  def list_workweek_configs(limit: nil,
591
385
  cursor: nil)
592
- # Prepare query url.
593
- _query_builder = config.get_base_uri
594
- _query_builder << '/v2/labor/workweek-configs'
595
- _query_builder = APIHelper.append_url_with_query_parameters(
596
- _query_builder,
597
- 'limit' => limit,
598
- 'cursor' => cursor
599
- )
600
- _query_url = APIHelper.clean_url _query_builder
601
-
602
- # Prepare headers.
603
- _headers = {
604
- 'accept' => 'application/json'
605
- }
606
-
607
- # Prepare and execute HttpRequest.
608
- _request = config.http_client.get(
609
- _query_url,
610
- headers: _headers
611
- )
612
- OAuth2.apply(config, _request)
613
- _response = execute_request(_request)
614
-
615
- # Return appropriate response type.
616
- decoded = APIHelper.json_deserialize(_response.raw_body)
617
- _errors = APIHelper.map_response(decoded, ['errors'])
618
- ApiResponse.new(
619
- _response, data: decoded, errors: _errors
620
- )
386
+ new_api_call_builder
387
+ .request(new_request_builder(HttpMethodEnum::GET,
388
+ '/v2/labor/workweek-configs',
389
+ 'default')
390
+ .query_param(new_parameter(limit, key: 'limit'))
391
+ .query_param(new_parameter(cursor, key: 'cursor'))
392
+ .header_param(new_parameter('application/json', key: 'accept'))
393
+ .auth(Single.new('global')))
394
+ .response(new_response_handler
395
+ .deserializer(APIHelper.method(:json_deserialize))
396
+ .is_api_response(true)
397
+ .convertor(ApiResponse.method(:create)))
398
+ .execute
621
399
  end
622
400
 
623
401
  # Updates a `WorkweekConfig`.
@@ -629,36 +407,22 @@ module Square
629
407
  # @return [UpdateWorkweekConfigResponse Hash] response from the API call
630
408
  def update_workweek_config(id:,
631
409
  body:)
632
- # Prepare query url.
633
- _query_builder = config.get_base_uri
634
- _query_builder << '/v2/labor/workweek-configs/{id}'
635
- _query_builder = APIHelper.append_url_with_template_parameters(
636
- _query_builder,
637
- 'id' => { 'value' => id, 'encode' => true }
638
- )
639
- _query_url = APIHelper.clean_url _query_builder
640
-
641
- # Prepare headers.
642
- _headers = {
643
- 'accept' => 'application/json',
644
- 'Content-Type' => 'application/json'
645
- }
646
-
647
- # Prepare and execute HttpRequest.
648
- _request = config.http_client.put(
649
- _query_url,
650
- headers: _headers,
651
- parameters: body.to_json
652
- )
653
- OAuth2.apply(config, _request)
654
- _response = execute_request(_request)
655
-
656
- # Return appropriate response type.
657
- decoded = APIHelper.json_deserialize(_response.raw_body)
658
- _errors = APIHelper.map_response(decoded, ['errors'])
659
- ApiResponse.new(
660
- _response, data: decoded, errors: _errors
661
- )
410
+ new_api_call_builder
411
+ .request(new_request_builder(HttpMethodEnum::PUT,
412
+ '/v2/labor/workweek-configs/{id}',
413
+ 'default')
414
+ .template_param(new_parameter(id, key: 'id')
415
+ .should_encode(true))
416
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
417
+ .body_param(new_parameter(body))
418
+ .header_param(new_parameter('application/json', key: 'accept'))
419
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
420
+ .auth(Single.new('global')))
421
+ .response(new_response_handler
422
+ .deserializer(APIHelper.method(:json_deserialize))
423
+ .is_api_response(true)
424
+ .convertor(ApiResponse.method(:create)))
425
+ .execute
662
426
  end
663
427
  end
664
428
  end