square.rb 26.0.0.20221214 → 26.2.0.20230315

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  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 +164 -329
  7. data/lib/square/api/bookings_api.rb +135 -260
  8. data/lib/square/api/cards_api.rb +56 -118
  9. data/lib/square/api/cash_drawers_api.rb +47 -103
  10. data/lib/square/api/catalog_api.rb +197 -423
  11. data/lib/square/api/checkout_api.rb +85 -175
  12. data/lib/square/api/customer_custom_attributes_api.rb +150 -303
  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 +130 -288
  18. data/lib/square/api/employees_api.rb +28 -63
  19. data/lib/square/api/gift_card_activities_api.rb +33 -65
  20. data/lib/square/api/gift_cards_api.rb +103 -202
  21. data/lib/square/api/inventory_api.rb +179 -366
  22. data/lib/square/api/invoices_api.rb +118 -237
  23. data/lib/square/api/labor_api.rb +223 -459
  24. data/lib/square/api/location_custom_attributes_api.rb +419 -0
  25. data/lib/square/api/locations_api.rb +54 -112
  26. data/lib/square/api/loyalty_api.rb +259 -512
  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 +168 -333
  31. data/lib/square/api/orders_api.rb +115 -222
  32. data/lib/square/api/payments_api.rb +106 -208
  33. data/lib/square/api/payouts_api.rb +47 -100
  34. data/lib/square/api/refunds_api.rb +46 -93
  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 +62 -126
  41. data/lib/square/api/v1_transactions_api.rb +155 -296
  42. data/lib/square/api/vendors_api.rb +99 -192
  43. data/lib/square/api/webhook_subscriptions_api.rb +115 -235
  44. data/lib/square/api_helper.rb +1 -437
  45. data/lib/square/client.rb +82 -46
  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 +7 -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 +12 -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,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