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
  # LoyaltyApi
3
3
  class LoyaltyApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
4
  # Creates a loyalty account. To create a loyalty account, you must provide
9
5
  # the `program_id` and a `mapping` with the `phone_number` of the buyer.
10
6
  # @param [CreateLoyaltyAccountRequest] body Required parameter: An object
@@ -12,32 +8,20 @@ module Square
12
8
  # object definition for field details.
13
9
  # @return [CreateLoyaltyAccountResponse Hash] response from the API call
14
10
  def create_loyalty_account(body:)
15
- # Prepare query url.
16
- _query_builder = config.get_base_uri
17
- _query_builder << '/v2/loyalty/accounts'
18
- _query_url = APIHelper.clean_url _query_builder
19
-
20
- # Prepare headers.
21
- _headers = {
22
- 'accept' => 'application/json',
23
- 'Content-Type' => 'application/json'
24
- }
25
-
26
- # Prepare and execute HttpRequest.
27
- _request = config.http_client.post(
28
- _query_url,
29
- headers: _headers,
30
- parameters: body.to_json
31
- )
32
- OAuth2.apply(config, _request)
33
- _response = execute_request(_request)
34
-
35
- # Return appropriate response type.
36
- decoded = APIHelper.json_deserialize(_response.raw_body)
37
- _errors = APIHelper.map_response(decoded, ['errors'])
38
- ApiResponse.new(
39
- _response, data: decoded, errors: _errors
40
- )
11
+ new_api_call_builder
12
+ .request(new_request_builder(HttpMethodEnum::POST,
13
+ '/v2/loyalty/accounts',
14
+ 'default')
15
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
16
+ .body_param(new_parameter(body))
17
+ .header_param(new_parameter('application/json', key: 'accept'))
18
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
19
+ .auth(Single.new('global')))
20
+ .response(new_response_handler
21
+ .deserializer(APIHelper.method(:json_deserialize))
22
+ .is_api_response(true)
23
+ .convertor(ApiResponse.method(:create)))
24
+ .execute
41
25
  end
42
26
 
43
27
  # Searches for loyalty accounts in a loyalty program.
@@ -50,32 +34,20 @@ module Square
50
34
  # object definition for field details.
51
35
  # @return [SearchLoyaltyAccountsResponse Hash] response from the API call
52
36
  def search_loyalty_accounts(body:)
53
- # Prepare query url.
54
- _query_builder = config.get_base_uri
55
- _query_builder << '/v2/loyalty/accounts/search'
56
- _query_url = APIHelper.clean_url _query_builder
57
-
58
- # Prepare headers.
59
- _headers = {
60
- 'accept' => 'application/json',
61
- 'Content-Type' => 'application/json'
62
- }
63
-
64
- # Prepare and execute HttpRequest.
65
- _request = config.http_client.post(
66
- _query_url,
67
- headers: _headers,
68
- parameters: body.to_json
69
- )
70
- OAuth2.apply(config, _request)
71
- _response = execute_request(_request)
72
-
73
- # Return appropriate response type.
74
- decoded = APIHelper.json_deserialize(_response.raw_body)
75
- _errors = APIHelper.map_response(decoded, ['errors'])
76
- ApiResponse.new(
77
- _response, data: decoded, errors: _errors
78
- )
37
+ new_api_call_builder
38
+ .request(new_request_builder(HttpMethodEnum::POST,
39
+ '/v2/loyalty/accounts/search',
40
+ 'default')
41
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
42
+ .body_param(new_parameter(body))
43
+ .header_param(new_parameter('application/json', key: 'accept'))
44
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
45
+ .auth(Single.new('global')))
46
+ .response(new_response_handler
47
+ .deserializer(APIHelper.method(:json_deserialize))
48
+ .is_api_response(true)
49
+ .convertor(ApiResponse.method(:create)))
50
+ .execute
79
51
  end
80
52
 
81
53
  # Retrieves a loyalty account.
@@ -83,34 +55,19 @@ module Square
83
55
  # account]($m/LoyaltyAccount) to retrieve.
84
56
  # @return [RetrieveLoyaltyAccountResponse Hash] response from the API call
85
57
  def retrieve_loyalty_account(account_id:)
86
- # Prepare query url.
87
- _query_builder = config.get_base_uri
88
- _query_builder << '/v2/loyalty/accounts/{account_id}'
89
- _query_builder = APIHelper.append_url_with_template_parameters(
90
- _query_builder,
91
- 'account_id' => { 'value' => account_id, 'encode' => true }
92
- )
93
- _query_url = APIHelper.clean_url _query_builder
94
-
95
- # Prepare headers.
96
- _headers = {
97
- 'accept' => 'application/json'
98
- }
99
-
100
- # Prepare and execute HttpRequest.
101
- _request = config.http_client.get(
102
- _query_url,
103
- headers: _headers
104
- )
105
- OAuth2.apply(config, _request)
106
- _response = execute_request(_request)
107
-
108
- # Return appropriate response type.
109
- decoded = APIHelper.json_deserialize(_response.raw_body)
110
- _errors = APIHelper.map_response(decoded, ['errors'])
111
- ApiResponse.new(
112
- _response, data: decoded, errors: _errors
113
- )
58
+ new_api_call_builder
59
+ .request(new_request_builder(HttpMethodEnum::GET,
60
+ '/v2/loyalty/accounts/{account_id}',
61
+ 'default')
62
+ .template_param(new_parameter(account_id, key: 'account_id')
63
+ .should_encode(true))
64
+ .header_param(new_parameter('application/json', key: 'accept'))
65
+ .auth(Single.new('global')))
66
+ .response(new_response_handler
67
+ .deserializer(APIHelper.method(:json_deserialize))
68
+ .is_api_response(true)
69
+ .convertor(ApiResponse.method(:create)))
70
+ .execute
114
71
  end
115
72
 
116
73
  # Adds points earned from a purchase to a [loyalty
@@ -146,36 +103,22 @@ module Square
146
103
  # @return [AccumulateLoyaltyPointsResponse Hash] response from the API call
147
104
  def accumulate_loyalty_points(account_id:,
148
105
  body:)
149
- # Prepare query url.
150
- _query_builder = config.get_base_uri
151
- _query_builder << '/v2/loyalty/accounts/{account_id}/accumulate'
152
- _query_builder = APIHelper.append_url_with_template_parameters(
153
- _query_builder,
154
- 'account_id' => { 'value' => account_id, 'encode' => true }
155
- )
156
- _query_url = APIHelper.clean_url _query_builder
157
-
158
- # Prepare headers.
159
- _headers = {
160
- 'accept' => 'application/json',
161
- 'Content-Type' => 'application/json'
162
- }
163
-
164
- # Prepare and execute HttpRequest.
165
- _request = config.http_client.post(
166
- _query_url,
167
- headers: _headers,
168
- parameters: body.to_json
169
- )
170
- OAuth2.apply(config, _request)
171
- _response = execute_request(_request)
172
-
173
- # Return appropriate response type.
174
- decoded = APIHelper.json_deserialize(_response.raw_body)
175
- _errors = APIHelper.map_response(decoded, ['errors'])
176
- ApiResponse.new(
177
- _response, data: decoded, errors: _errors
178
- )
106
+ new_api_call_builder
107
+ .request(new_request_builder(HttpMethodEnum::POST,
108
+ '/v2/loyalty/accounts/{account_id}/accumulate',
109
+ 'default')
110
+ .template_param(new_parameter(account_id, key: 'account_id')
111
+ .should_encode(true))
112
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
113
+ .body_param(new_parameter(body))
114
+ .header_param(new_parameter('application/json', key: 'accept'))
115
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
116
+ .auth(Single.new('global')))
117
+ .response(new_response_handler
118
+ .deserializer(APIHelper.method(:json_deserialize))
119
+ .is_api_response(true)
120
+ .convertor(ApiResponse.method(:create)))
121
+ .execute
179
122
  end
180
123
 
181
124
  # Adds points to or subtracts points from a buyer's account.
@@ -191,36 +134,22 @@ module Square
191
134
  # @return [AdjustLoyaltyPointsResponse Hash] response from the API call
192
135
  def adjust_loyalty_points(account_id:,
193
136
  body:)
194
- # Prepare query url.
195
- _query_builder = config.get_base_uri
196
- _query_builder << '/v2/loyalty/accounts/{account_id}/adjust'
197
- _query_builder = APIHelper.append_url_with_template_parameters(
198
- _query_builder,
199
- 'account_id' => { 'value' => account_id, 'encode' => true }
200
- )
201
- _query_url = APIHelper.clean_url _query_builder
202
-
203
- # Prepare headers.
204
- _headers = {
205
- 'accept' => 'application/json',
206
- 'Content-Type' => 'application/json'
207
- }
208
-
209
- # Prepare and execute HttpRequest.
210
- _request = config.http_client.post(
211
- _query_url,
212
- headers: _headers,
213
- parameters: body.to_json
214
- )
215
- OAuth2.apply(config, _request)
216
- _response = execute_request(_request)
217
-
218
- # Return appropriate response type.
219
- decoded = APIHelper.json_deserialize(_response.raw_body)
220
- _errors = APIHelper.map_response(decoded, ['errors'])
221
- ApiResponse.new(
222
- _response, data: decoded, errors: _errors
223
- )
137
+ new_api_call_builder
138
+ .request(new_request_builder(HttpMethodEnum::POST,
139
+ '/v2/loyalty/accounts/{account_id}/adjust',
140
+ 'default')
141
+ .template_param(new_parameter(account_id, key: 'account_id')
142
+ .should_encode(true))
143
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
144
+ .body_param(new_parameter(body))
145
+ .header_param(new_parameter('application/json', key: 'accept'))
146
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
147
+ .auth(Single.new('global')))
148
+ .response(new_response_handler
149
+ .deserializer(APIHelper.method(:json_deserialize))
150
+ .is_api_response(true)
151
+ .convertor(ApiResponse.method(:create)))
152
+ .execute
224
153
  end
225
154
 
226
155
  # Searches for loyalty events.
@@ -236,32 +165,20 @@ module Square
236
165
  # object definition for field details.
237
166
  # @return [SearchLoyaltyEventsResponse Hash] response from the API call
238
167
  def search_loyalty_events(body:)
239
- # Prepare query url.
240
- _query_builder = config.get_base_uri
241
- _query_builder << '/v2/loyalty/events/search'
242
- _query_url = APIHelper.clean_url _query_builder
243
-
244
- # Prepare headers.
245
- _headers = {
246
- 'accept' => 'application/json',
247
- 'Content-Type' => 'application/json'
248
- }
249
-
250
- # Prepare and execute HttpRequest.
251
- _request = config.http_client.post(
252
- _query_url,
253
- headers: _headers,
254
- parameters: body.to_json
255
- )
256
- OAuth2.apply(config, _request)
257
- _response = execute_request(_request)
258
-
259
- # Return appropriate response type.
260
- decoded = APIHelper.json_deserialize(_response.raw_body)
261
- _errors = APIHelper.map_response(decoded, ['errors'])
262
- ApiResponse.new(
263
- _response, data: decoded, errors: _errors
264
- )
168
+ new_api_call_builder
169
+ .request(new_request_builder(HttpMethodEnum::POST,
170
+ '/v2/loyalty/events/search',
171
+ 'default')
172
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
173
+ .body_param(new_parameter(body))
174
+ .header_param(new_parameter('application/json', key: 'accept'))
175
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
176
+ .auth(Single.new('global')))
177
+ .response(new_response_handler
178
+ .deserializer(APIHelper.method(:json_deserialize))
179
+ .is_api_response(true)
180
+ .convertor(ApiResponse.method(:create)))
181
+ .execute
265
182
  end
266
183
 
267
184
  # Returns a list of loyalty programs in the seller's account.
@@ -275,30 +192,17 @@ module Square
275
192
  # @return [ListLoyaltyProgramsResponse Hash] response from the API call
276
193
  def list_loyalty_programs
277
194
  warn 'Endpoint list_loyalty_programs in LoyaltyApi is deprecated'
278
- # Prepare query url.
279
- _query_builder = config.get_base_uri
280
- _query_builder << '/v2/loyalty/programs'
281
- _query_url = APIHelper.clean_url _query_builder
282
-
283
- # Prepare headers.
284
- _headers = {
285
- 'accept' => 'application/json'
286
- }
287
-
288
- # Prepare and execute HttpRequest.
289
- _request = config.http_client.get(
290
- _query_url,
291
- headers: _headers
292
- )
293
- OAuth2.apply(config, _request)
294
- _response = execute_request(_request)
295
-
296
- # Return appropriate response type.
297
- decoded = APIHelper.json_deserialize(_response.raw_body)
298
- _errors = APIHelper.map_response(decoded, ['errors'])
299
- ApiResponse.new(
300
- _response, data: decoded, errors: _errors
301
- )
195
+ new_api_call_builder
196
+ .request(new_request_builder(HttpMethodEnum::GET,
197
+ '/v2/loyalty/programs',
198
+ 'default')
199
+ .header_param(new_parameter('application/json', key: 'accept'))
200
+ .auth(Single.new('global')))
201
+ .response(new_response_handler
202
+ .deserializer(APIHelper.method(:json_deserialize))
203
+ .is_api_response(true)
204
+ .convertor(ApiResponse.method(:create)))
205
+ .execute
302
206
  end
303
207
 
304
208
  # Retrieves the loyalty program in a seller's account, specified by the
@@ -313,34 +217,19 @@ module Square
313
217
  # single loyalty program that belongs to the seller.
314
218
  # @return [RetrieveLoyaltyProgramResponse Hash] response from the API call
315
219
  def retrieve_loyalty_program(program_id:)
316
- # Prepare query url.
317
- _query_builder = config.get_base_uri
318
- _query_builder << '/v2/loyalty/programs/{program_id}'
319
- _query_builder = APIHelper.append_url_with_template_parameters(
320
- _query_builder,
321
- 'program_id' => { 'value' => program_id, 'encode' => true }
322
- )
323
- _query_url = APIHelper.clean_url _query_builder
324
-
325
- # Prepare headers.
326
- _headers = {
327
- 'accept' => 'application/json'
328
- }
329
-
330
- # Prepare and execute HttpRequest.
331
- _request = config.http_client.get(
332
- _query_url,
333
- headers: _headers
334
- )
335
- OAuth2.apply(config, _request)
336
- _response = execute_request(_request)
337
-
338
- # Return appropriate response type.
339
- decoded = APIHelper.json_deserialize(_response.raw_body)
340
- _errors = APIHelper.map_response(decoded, ['errors'])
341
- ApiResponse.new(
342
- _response, data: decoded, errors: _errors
343
- )
220
+ new_api_call_builder
221
+ .request(new_request_builder(HttpMethodEnum::GET,
222
+ '/v2/loyalty/programs/{program_id}',
223
+ 'default')
224
+ .template_param(new_parameter(program_id, key: 'program_id')
225
+ .should_encode(true))
226
+ .header_param(new_parameter('application/json', key: 'accept'))
227
+ .auth(Single.new('global')))
228
+ .response(new_response_handler
229
+ .deserializer(APIHelper.method(:json_deserialize))
230
+ .is_api_response(true)
231
+ .convertor(ApiResponse.method(:create)))
232
+ .execute
344
233
  end
345
234
 
346
235
  # Calculates the number of points a buyer can earn from a purchase.
@@ -376,36 +265,22 @@ module Square
376
265
  # @return [CalculateLoyaltyPointsResponse Hash] response from the API call
377
266
  def calculate_loyalty_points(program_id:,
378
267
  body:)
379
- # Prepare query url.
380
- _query_builder = config.get_base_uri
381
- _query_builder << '/v2/loyalty/programs/{program_id}/calculate'
382
- _query_builder = APIHelper.append_url_with_template_parameters(
383
- _query_builder,
384
- 'program_id' => { 'value' => program_id, 'encode' => true }
385
- )
386
- _query_url = APIHelper.clean_url _query_builder
387
-
388
- # Prepare headers.
389
- _headers = {
390
- 'accept' => 'application/json',
391
- 'Content-Type' => 'application/json'
392
- }
393
-
394
- # Prepare and execute HttpRequest.
395
- _request = config.http_client.post(
396
- _query_url,
397
- headers: _headers,
398
- parameters: body.to_json
399
- )
400
- OAuth2.apply(config, _request)
401
- _response = execute_request(_request)
402
-
403
- # Return appropriate response type.
404
- decoded = APIHelper.json_deserialize(_response.raw_body)
405
- _errors = APIHelper.map_response(decoded, ['errors'])
406
- ApiResponse.new(
407
- _response, data: decoded, errors: _errors
408
- )
268
+ new_api_call_builder
269
+ .request(new_request_builder(HttpMethodEnum::POST,
270
+ '/v2/loyalty/programs/{program_id}/calculate',
271
+ 'default')
272
+ .template_param(new_parameter(program_id, key: 'program_id')
273
+ .should_encode(true))
274
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
275
+ .body_param(new_parameter(body))
276
+ .header_param(new_parameter('application/json', key: 'accept'))
277
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
278
+ .auth(Single.new('global')))
279
+ .response(new_response_handler
280
+ .deserializer(APIHelper.method(:json_deserialize))
281
+ .is_api_response(true)
282
+ .convertor(ApiResponse.method(:create)))
283
+ .execute
409
284
  end
410
285
 
411
286
  # Lists the loyalty promotions associated with a [loyalty
@@ -436,40 +311,22 @@ module Square
436
311
  status: nil,
437
312
  cursor: nil,
438
313
  limit: nil)
439
- # Prepare query url.
440
- _query_builder = config.get_base_uri
441
- _query_builder << '/v2/loyalty/programs/{program_id}/promotions'
442
- _query_builder = APIHelper.append_url_with_template_parameters(
443
- _query_builder,
444
- 'program_id' => { 'value' => program_id, 'encode' => true }
445
- )
446
- _query_builder = APIHelper.append_url_with_query_parameters(
447
- _query_builder,
448
- 'status' => status,
449
- 'cursor' => cursor,
450
- 'limit' => limit
451
- )
452
- _query_url = APIHelper.clean_url _query_builder
453
-
454
- # Prepare headers.
455
- _headers = {
456
- 'accept' => 'application/json'
457
- }
458
-
459
- # Prepare and execute HttpRequest.
460
- _request = config.http_client.get(
461
- _query_url,
462
- headers: _headers
463
- )
464
- OAuth2.apply(config, _request)
465
- _response = execute_request(_request)
466
-
467
- # Return appropriate response type.
468
- decoded = APIHelper.json_deserialize(_response.raw_body)
469
- _errors = APIHelper.map_response(decoded, ['errors'])
470
- ApiResponse.new(
471
- _response, data: decoded, errors: _errors
472
- )
314
+ new_api_call_builder
315
+ .request(new_request_builder(HttpMethodEnum::GET,
316
+ '/v2/loyalty/programs/{program_id}/promotions',
317
+ 'default')
318
+ .template_param(new_parameter(program_id, key: 'program_id')
319
+ .should_encode(true))
320
+ .query_param(new_parameter(status, key: 'status'))
321
+ .query_param(new_parameter(cursor, key: 'cursor'))
322
+ .query_param(new_parameter(limit, key: 'limit'))
323
+ .header_param(new_parameter('application/json', key: 'accept'))
324
+ .auth(Single.new('global')))
325
+ .response(new_response_handler
326
+ .deserializer(APIHelper.method(:json_deserialize))
327
+ .is_api_response(true)
328
+ .convertor(ApiResponse.method(:create)))
329
+ .execute
473
330
  end
474
331
 
475
332
  # Creates a loyalty promotion for a [loyalty program]($m/LoyaltyProgram). A
@@ -492,36 +349,22 @@ module Square
492
349
  # @return [CreateLoyaltyPromotionResponse Hash] response from the API call
493
350
  def create_loyalty_promotion(program_id:,
494
351
  body:)
495
- # Prepare query url.
496
- _query_builder = config.get_base_uri
497
- _query_builder << '/v2/loyalty/programs/{program_id}/promotions'
498
- _query_builder = APIHelper.append_url_with_template_parameters(
499
- _query_builder,
500
- 'program_id' => { 'value' => program_id, 'encode' => true }
501
- )
502
- _query_url = APIHelper.clean_url _query_builder
503
-
504
- # Prepare headers.
505
- _headers = {
506
- 'accept' => 'application/json',
507
- 'Content-Type' => 'application/json'
508
- }
509
-
510
- # Prepare and execute HttpRequest.
511
- _request = config.http_client.post(
512
- _query_url,
513
- headers: _headers,
514
- parameters: body.to_json
515
- )
516
- OAuth2.apply(config, _request)
517
- _response = execute_request(_request)
518
-
519
- # Return appropriate response type.
520
- decoded = APIHelper.json_deserialize(_response.raw_body)
521
- _errors = APIHelper.map_response(decoded, ['errors'])
522
- ApiResponse.new(
523
- _response, data: decoded, errors: _errors
524
- )
352
+ new_api_call_builder
353
+ .request(new_request_builder(HttpMethodEnum::POST,
354
+ '/v2/loyalty/programs/{program_id}/promotions',
355
+ 'default')
356
+ .template_param(new_parameter(program_id, key: 'program_id')
357
+ .should_encode(true))
358
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
359
+ .body_param(new_parameter(body))
360
+ .header_param(new_parameter('application/json', key: 'accept'))
361
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
362
+ .auth(Single.new('global')))
363
+ .response(new_response_handler
364
+ .deserializer(APIHelper.method(:json_deserialize))
365
+ .is_api_response(true)
366
+ .convertor(ApiResponse.method(:create)))
367
+ .execute
525
368
  end
526
369
 
527
370
  # Retrieves a loyalty promotion.
@@ -534,35 +377,21 @@ module Square
534
377
  # @return [RetrieveLoyaltyPromotionResponse Hash] response from the API call
535
378
  def retrieve_loyalty_promotion(promotion_id:,
536
379
  program_id:)
537
- # Prepare query url.
538
- _query_builder = config.get_base_uri
539
- _query_builder << '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}'
540
- _query_builder = APIHelper.append_url_with_template_parameters(
541
- _query_builder,
542
- 'promotion_id' => { 'value' => promotion_id, 'encode' => true },
543
- 'program_id' => { 'value' => program_id, 'encode' => true }
544
- )
545
- _query_url = APIHelper.clean_url _query_builder
546
-
547
- # Prepare headers.
548
- _headers = {
549
- 'accept' => 'application/json'
550
- }
551
-
552
- # Prepare and execute HttpRequest.
553
- _request = config.http_client.get(
554
- _query_url,
555
- headers: _headers
556
- )
557
- OAuth2.apply(config, _request)
558
- _response = execute_request(_request)
559
-
560
- # Return appropriate response type.
561
- decoded = APIHelper.json_deserialize(_response.raw_body)
562
- _errors = APIHelper.map_response(decoded, ['errors'])
563
- ApiResponse.new(
564
- _response, data: decoded, errors: _errors
565
- )
380
+ new_api_call_builder
381
+ .request(new_request_builder(HttpMethodEnum::GET,
382
+ '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}',
383
+ 'default')
384
+ .template_param(new_parameter(promotion_id, key: 'promotion_id')
385
+ .should_encode(true))
386
+ .template_param(new_parameter(program_id, key: 'program_id')
387
+ .should_encode(true))
388
+ .header_param(new_parameter('application/json', key: 'accept'))
389
+ .auth(Single.new('global')))
390
+ .response(new_response_handler
391
+ .deserializer(APIHelper.method(:json_deserialize))
392
+ .is_api_response(true)
393
+ .convertor(ApiResponse.method(:create)))
394
+ .execute
566
395
  end
567
396
 
568
397
  # Cancels a loyalty promotion. Use this endpoint to cancel an `ACTIVE`
@@ -581,35 +410,21 @@ module Square
581
410
  # @return [CancelLoyaltyPromotionResponse Hash] response from the API call
582
411
  def cancel_loyalty_promotion(promotion_id:,
583
412
  program_id:)
584
- # Prepare query url.
585
- _query_builder = config.get_base_uri
586
- _query_builder << '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}/cancel'
587
- _query_builder = APIHelper.append_url_with_template_parameters(
588
- _query_builder,
589
- 'promotion_id' => { 'value' => promotion_id, 'encode' => true },
590
- 'program_id' => { 'value' => program_id, 'encode' => true }
591
- )
592
- _query_url = APIHelper.clean_url _query_builder
593
-
594
- # Prepare headers.
595
- _headers = {
596
- 'accept' => 'application/json'
597
- }
598
-
599
- # Prepare and execute HttpRequest.
600
- _request = config.http_client.post(
601
- _query_url,
602
- headers: _headers
603
- )
604
- OAuth2.apply(config, _request)
605
- _response = execute_request(_request)
606
-
607
- # Return appropriate response type.
608
- decoded = APIHelper.json_deserialize(_response.raw_body)
609
- _errors = APIHelper.map_response(decoded, ['errors'])
610
- ApiResponse.new(
611
- _response, data: decoded, errors: _errors
612
- )
413
+ new_api_call_builder
414
+ .request(new_request_builder(HttpMethodEnum::POST,
415
+ '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}/cancel',
416
+ 'default')
417
+ .template_param(new_parameter(promotion_id, key: 'promotion_id')
418
+ .should_encode(true))
419
+ .template_param(new_parameter(program_id, key: 'program_id')
420
+ .should_encode(true))
421
+ .header_param(new_parameter('application/json', key: 'accept'))
422
+ .auth(Single.new('global')))
423
+ .response(new_response_handler
424
+ .deserializer(APIHelper.method(:json_deserialize))
425
+ .is_api_response(true)
426
+ .convertor(ApiResponse.method(:create)))
427
+ .execute
613
428
  end
614
429
 
615
430
  # Creates a loyalty reward. In the process, the endpoint does following:
@@ -625,32 +440,20 @@ module Square
625
440
  # object definition for field details.
626
441
  # @return [CreateLoyaltyRewardResponse Hash] response from the API call
627
442
  def create_loyalty_reward(body:)
628
- # Prepare query url.
629
- _query_builder = config.get_base_uri
630
- _query_builder << '/v2/loyalty/rewards'
631
- _query_url = APIHelper.clean_url _query_builder
632
-
633
- # Prepare headers.
634
- _headers = {
635
- 'accept' => 'application/json',
636
- 'Content-Type' => 'application/json'
637
- }
638
-
639
- # Prepare and execute HttpRequest.
640
- _request = config.http_client.post(
641
- _query_url,
642
- headers: _headers,
643
- parameters: body.to_json
644
- )
645
- OAuth2.apply(config, _request)
646
- _response = execute_request(_request)
647
-
648
- # Return appropriate response type.
649
- decoded = APIHelper.json_deserialize(_response.raw_body)
650
- _errors = APIHelper.map_response(decoded, ['errors'])
651
- ApiResponse.new(
652
- _response, data: decoded, errors: _errors
653
- )
443
+ new_api_call_builder
444
+ .request(new_request_builder(HttpMethodEnum::POST,
445
+ '/v2/loyalty/rewards',
446
+ 'default')
447
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
448
+ .body_param(new_parameter(body))
449
+ .header_param(new_parameter('application/json', key: 'accept'))
450
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
451
+ .auth(Single.new('global')))
452
+ .response(new_response_handler
453
+ .deserializer(APIHelper.method(:json_deserialize))
454
+ .is_api_response(true)
455
+ .convertor(ApiResponse.method(:create)))
456
+ .execute
654
457
  end
655
458
 
656
459
  # Searches for loyalty rewards. This endpoint accepts a request with no
@@ -665,32 +468,20 @@ module Square
665
468
  # object definition for field details.
666
469
  # @return [SearchLoyaltyRewardsResponse Hash] response from the API call
667
470
  def search_loyalty_rewards(body:)
668
- # Prepare query url.
669
- _query_builder = config.get_base_uri
670
- _query_builder << '/v2/loyalty/rewards/search'
671
- _query_url = APIHelper.clean_url _query_builder
672
-
673
- # Prepare headers.
674
- _headers = {
675
- 'accept' => 'application/json',
676
- 'Content-Type' => 'application/json'
677
- }
678
-
679
- # Prepare and execute HttpRequest.
680
- _request = config.http_client.post(
681
- _query_url,
682
- headers: _headers,
683
- parameters: body.to_json
684
- )
685
- OAuth2.apply(config, _request)
686
- _response = execute_request(_request)
687
-
688
- # Return appropriate response type.
689
- decoded = APIHelper.json_deserialize(_response.raw_body)
690
- _errors = APIHelper.map_response(decoded, ['errors'])
691
- ApiResponse.new(
692
- _response, data: decoded, errors: _errors
693
- )
471
+ new_api_call_builder
472
+ .request(new_request_builder(HttpMethodEnum::POST,
473
+ '/v2/loyalty/rewards/search',
474
+ 'default')
475
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
476
+ .body_param(new_parameter(body))
477
+ .header_param(new_parameter('application/json', key: 'accept'))
478
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
479
+ .auth(Single.new('global')))
480
+ .response(new_response_handler
481
+ .deserializer(APIHelper.method(:json_deserialize))
482
+ .is_api_response(true)
483
+ .convertor(ApiResponse.method(:create)))
484
+ .execute
694
485
  end
695
486
 
696
487
  # Deletes a loyalty reward by doing the following:
@@ -704,34 +495,19 @@ module Square
704
495
  # reward]($m/LoyaltyReward) to delete.
705
496
  # @return [DeleteLoyaltyRewardResponse Hash] response from the API call
706
497
  def delete_loyalty_reward(reward_id:)
707
- # Prepare query url.
708
- _query_builder = config.get_base_uri
709
- _query_builder << '/v2/loyalty/rewards/{reward_id}'
710
- _query_builder = APIHelper.append_url_with_template_parameters(
711
- _query_builder,
712
- 'reward_id' => { 'value' => reward_id, 'encode' => true }
713
- )
714
- _query_url = APIHelper.clean_url _query_builder
715
-
716
- # Prepare headers.
717
- _headers = {
718
- 'accept' => 'application/json'
719
- }
720
-
721
- # Prepare and execute HttpRequest.
722
- _request = config.http_client.delete(
723
- _query_url,
724
- headers: _headers
725
- )
726
- OAuth2.apply(config, _request)
727
- _response = execute_request(_request)
728
-
729
- # Return appropriate response type.
730
- decoded = APIHelper.json_deserialize(_response.raw_body)
731
- _errors = APIHelper.map_response(decoded, ['errors'])
732
- ApiResponse.new(
733
- _response, data: decoded, errors: _errors
734
- )
498
+ new_api_call_builder
499
+ .request(new_request_builder(HttpMethodEnum::DELETE,
500
+ '/v2/loyalty/rewards/{reward_id}',
501
+ 'default')
502
+ .template_param(new_parameter(reward_id, key: 'reward_id')
503
+ .should_encode(true))
504
+ .header_param(new_parameter('application/json', key: 'accept'))
505
+ .auth(Single.new('global')))
506
+ .response(new_response_handler
507
+ .deserializer(APIHelper.method(:json_deserialize))
508
+ .is_api_response(true)
509
+ .convertor(ApiResponse.method(:create)))
510
+ .execute
735
511
  end
736
512
 
737
513
  # Retrieves a loyalty reward.
@@ -739,34 +515,19 @@ module Square
739
515
  # reward]($m/LoyaltyReward) to retrieve.
740
516
  # @return [RetrieveLoyaltyRewardResponse Hash] response from the API call
741
517
  def retrieve_loyalty_reward(reward_id:)
742
- # Prepare query url.
743
- _query_builder = config.get_base_uri
744
- _query_builder << '/v2/loyalty/rewards/{reward_id}'
745
- _query_builder = APIHelper.append_url_with_template_parameters(
746
- _query_builder,
747
- 'reward_id' => { 'value' => reward_id, 'encode' => true }
748
- )
749
- _query_url = APIHelper.clean_url _query_builder
750
-
751
- # Prepare headers.
752
- _headers = {
753
- 'accept' => 'application/json'
754
- }
755
-
756
- # Prepare and execute HttpRequest.
757
- _request = config.http_client.get(
758
- _query_url,
759
- headers: _headers
760
- )
761
- OAuth2.apply(config, _request)
762
- _response = execute_request(_request)
763
-
764
- # Return appropriate response type.
765
- decoded = APIHelper.json_deserialize(_response.raw_body)
766
- _errors = APIHelper.map_response(decoded, ['errors'])
767
- ApiResponse.new(
768
- _response, data: decoded, errors: _errors
769
- )
518
+ new_api_call_builder
519
+ .request(new_request_builder(HttpMethodEnum::GET,
520
+ '/v2/loyalty/rewards/{reward_id}',
521
+ 'default')
522
+ .template_param(new_parameter(reward_id, key: 'reward_id')
523
+ .should_encode(true))
524
+ .header_param(new_parameter('application/json', key: 'accept'))
525
+ .auth(Single.new('global')))
526
+ .response(new_response_handler
527
+ .deserializer(APIHelper.method(:json_deserialize))
528
+ .is_api_response(true)
529
+ .convertor(ApiResponse.method(:create)))
530
+ .execute
770
531
  end
771
532
 
772
533
  # Redeems a loyalty reward.
@@ -785,36 +546,22 @@ module Square
785
546
  # @return [RedeemLoyaltyRewardResponse Hash] response from the API call
786
547
  def redeem_loyalty_reward(reward_id:,
787
548
  body:)
788
- # Prepare query url.
789
- _query_builder = config.get_base_uri
790
- _query_builder << '/v2/loyalty/rewards/{reward_id}/redeem'
791
- _query_builder = APIHelper.append_url_with_template_parameters(
792
- _query_builder,
793
- 'reward_id' => { 'value' => reward_id, 'encode' => true }
794
- )
795
- _query_url = APIHelper.clean_url _query_builder
796
-
797
- # Prepare headers.
798
- _headers = {
799
- 'accept' => 'application/json',
800
- 'Content-Type' => 'application/json'
801
- }
802
-
803
- # Prepare and execute HttpRequest.
804
- _request = config.http_client.post(
805
- _query_url,
806
- headers: _headers,
807
- parameters: body.to_json
808
- )
809
- OAuth2.apply(config, _request)
810
- _response = execute_request(_request)
811
-
812
- # Return appropriate response type.
813
- decoded = APIHelper.json_deserialize(_response.raw_body)
814
- _errors = APIHelper.map_response(decoded, ['errors'])
815
- ApiResponse.new(
816
- _response, data: decoded, errors: _errors
817
- )
549
+ new_api_call_builder
550
+ .request(new_request_builder(HttpMethodEnum::POST,
551
+ '/v2/loyalty/rewards/{reward_id}/redeem',
552
+ 'default')
553
+ .template_param(new_parameter(reward_id, key: 'reward_id')
554
+ .should_encode(true))
555
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
556
+ .body_param(new_parameter(body))
557
+ .header_param(new_parameter('application/json', key: 'accept'))
558
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
559
+ .auth(Single.new('global')))
560
+ .response(new_response_handler
561
+ .deserializer(APIHelper.method(:json_deserialize))
562
+ .is_api_response(true)
563
+ .convertor(ApiResponse.method(:create)))
564
+ .execute
818
565
  end
819
566
  end
820
567
  end