square.rb 26.1.0.20230119 → 27.0.0.20230419

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/lib/square/api/apple_pay_api.rb +14 -30
  4. data/lib/square/api/bank_accounts_api.rb +40 -90
  5. data/lib/square/api/base_api.rb +42 -42
  6. data/lib/square/api/booking_custom_attributes_api.rb +171 -336
  7. data/lib/square/api/bookings_api.rb +140 -263
  8. data/lib/square/api/cards_api.rb +58 -120
  9. data/lib/square/api/cash_drawers_api.rb +47 -103
  10. data/lib/square/api/catalog_api.rb +200 -426
  11. data/lib/square/api/checkout_api.rb +86 -176
  12. data/lib/square/api/customer_custom_attributes_api.rb +157 -310
  13. data/lib/square/api/customer_groups_api.rb +69 -145
  14. data/lib/square/api/customer_segments_api.rb +26 -61
  15. data/lib/square/api/customers_api.rb +147 -294
  16. data/lib/square/api/devices_api.rb +42 -89
  17. data/lib/square/api/disputes_api.rb +132 -290
  18. data/lib/square/api/employees_api.rb +28 -63
  19. data/lib/square/api/gift_card_activities_api.rb +34 -66
  20. data/lib/square/api/gift_cards_api.rb +109 -207
  21. data/lib/square/api/inventory_api.rb +204 -391
  22. data/lib/square/api/invoices_api.rb +121 -240
  23. data/lib/square/api/labor_api.rb +223 -459
  24. data/lib/square/api/location_custom_attributes_api.rb +173 -338
  25. data/lib/square/api/locations_api.rb +54 -112
  26. data/lib/square/api/loyalty_api.rb +283 -535
  27. data/lib/square/api/merchants_api.rb +25 -60
  28. data/lib/square/api/mobile_authorization_api.rb +14 -30
  29. data/lib/square/api/o_auth_api.rb +54 -109
  30. data/lib/square/api/order_custom_attributes_api.rb +174 -339
  31. data/lib/square/api/orders_api.rb +115 -222
  32. data/lib/square/api/payments_api.rb +118 -217
  33. data/lib/square/api/payouts_api.rb +54 -107
  34. data/lib/square/api/refunds_api.rb +59 -104
  35. data/lib/square/api/sites_api.rb +11 -28
  36. data/lib/square/api/snippets_api.rb +42 -90
  37. data/lib/square/api/subscriptions_api.rb +150 -299
  38. data/lib/square/api/team_api.rb +114 -224
  39. data/lib/square/api/terminal_api.rb +162 -328
  40. data/lib/square/api/transactions_api.rb +64 -128
  41. data/lib/square/api/v1_transactions_api.rb +155 -296
  42. data/lib/square/api/vendors_api.rb +100 -193
  43. data/lib/square/api/webhook_subscriptions_api.rb +124 -244
  44. data/lib/square/api_helper.rb +1 -437
  45. data/lib/square/client.rb +77 -47
  46. data/lib/square/configuration.rb +28 -53
  47. data/lib/square/exceptions/api_exception.rb +1 -11
  48. data/lib/square/http/api_response.rb +13 -19
  49. data/lib/square/http/auth/o_auth2.rb +14 -7
  50. data/lib/square/http/http_call_back.rb +1 -15
  51. data/lib/square/http/http_method_enum.rb +1 -4
  52. data/lib/square/http/http_request.rb +1 -45
  53. data/lib/square/http/http_response.rb +1 -20
  54. data/lib/square/utilities/date_time_helper.rb +1 -146
  55. data/lib/square/utilities/file_wrapper.rb +5 -5
  56. data/lib/square.rb +6 -6
  57. data/spec/user_journey_spec.rb +2 -2
  58. data/test/api/api_test_base.rb +13 -5
  59. data/test/api/test_catalog_api.rb +5 -4
  60. data/test/api/test_customers_api.rb +3 -2
  61. data/test/api/test_employees_api.rb +4 -3
  62. data/test/api/test_labor_api.rb +6 -5
  63. data/test/api/test_locations_api.rb +3 -2
  64. data/test/api/test_merchants_api.rb +4 -3
  65. data/test/api/test_payments_api.rb +4 -3
  66. data/test/api/test_refunds_api.rb +4 -3
  67. metadata +11 -111
  68. data/lib/square/exceptions/validation_exception.rb +0 -13
  69. data/lib/square/http/faraday_client.rb +0 -93
  70. data/lib/square/http/http_client.rb +0 -118
  71. data/test/test_helper.rb +0 -89
@@ -1,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,67 +34,40 @@ 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.
82
54
  # @param [String] account_id Required parameter: The ID of the [loyalty
83
- # account]($m/LoyaltyAccount) to retrieve.
55
+ # account](entity: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
@@ -139,43 +96,29 @@ module Square
139
96
  # points](https://developer.squareup.com/docs/loyalty-api/loyalty-promotions
140
97
  # #calculate-promotion-points).
141
98
  # @param [String] account_id Required parameter: The ID of the target
142
- # [loyalty account]($m/LoyaltyAccount).
99
+ # [loyalty account](entity:LoyaltyAccount).
143
100
  # @param [AccumulateLoyaltyPointsRequest] body Required parameter: An object
144
101
  # containing the fields to POST for the request. See the corresponding
145
102
  # object definition for field details.
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.
@@ -184,43 +127,29 @@ module Square
184
127
  # [AccumulateLoyaltyPoints]($e/Loyalty/AccumulateLoyaltyPoints)
185
128
  # to add points when a buyer pays for the purchase.
186
129
  # @param [String] account_id Required parameter: The ID of the target
187
- # [loyalty account]($m/LoyaltyAccount).
130
+ # [loyalty account](entity:LoyaltyAccount).
188
131
  # @param [AdjustLoyaltyPointsRequest] body Required parameter: An object
189
132
  # containing the fields to POST for the request. See the corresponding
190
133
  # object definition for field details.
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.
@@ -270,35 +187,23 @@ module Square
270
187
  # created and managed from the Seller Dashboard. For more information, see
271
188
  # [Loyalty Program
272
189
  # Overview](https://developer.squareup.com/docs/loyalty/overview).
273
- # Replaced with [RetrieveLoyaltyProgram]($e/Loyalty/RetrieveLoyaltyProgram)
274
- # when used with the keyword `main`.
190
+ # Replaced with
191
+ # [RetrieveLoyaltyProgram](api-endpoint:Loyalty-RetrieveLoyaltyProgram) when
192
+ # used with the keyword `main`.
275
193
  # @return [ListLoyaltyProgramsResponse Hash] response from the API call
276
194
  def list_loyalty_programs
277
195
  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
- )
196
+ new_api_call_builder
197
+ .request(new_request_builder(HttpMethodEnum::GET,
198
+ '/v2/loyalty/programs',
199
+ 'default')
200
+ .header_param(new_parameter('application/json', key: 'accept'))
201
+ .auth(Single.new('global')))
202
+ .response(new_response_handler
203
+ .deserializer(APIHelper.method(:json_deserialize))
204
+ .is_api_response(true)
205
+ .convertor(ApiResponse.method(:create)))
206
+ .execute
302
207
  end
303
208
 
304
209
  # Retrieves the loyalty program in a seller's account, specified by the
@@ -313,34 +218,19 @@ module Square
313
218
  # single loyalty program that belongs to the seller.
314
219
  # @return [RetrieveLoyaltyProgramResponse Hash] response from the API call
315
220
  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
- )
221
+ new_api_call_builder
222
+ .request(new_request_builder(HttpMethodEnum::GET,
223
+ '/v2/loyalty/programs/{program_id}',
224
+ 'default')
225
+ .template_param(new_parameter(program_id, key: 'program_id')
226
+ .should_encode(true))
227
+ .header_param(new_parameter('application/json', key: 'accept'))
228
+ .auth(Single.new('global')))
229
+ .response(new_response_handler
230
+ .deserializer(APIHelper.method(:json_deserialize))
231
+ .is_api_response(true)
232
+ .convertor(ApiResponse.method(:create)))
233
+ .execute
344
234
  end
345
235
 
346
236
  # Calculates the number of points a buyer can earn from a purchase.
@@ -368,7 +258,7 @@ module Square
368
258
  # points](https://developer.squareup.com/docs/loyalty-api/loyalty-promotions
369
259
  # #calculate-promotion-points).
370
260
  # @param [String] program_id Required parameter: The ID of the [loyalty
371
- # program]($m/LoyaltyProgram), which defines the rules for accruing
261
+ # program](entity:LoyaltyProgram), which defines the rules for accruing
372
262
  # points.
373
263
  # @param [CalculateLoyaltyPointsRequest] body Required parameter: An object
374
264
  # containing the fields to POST for the request. See the corresponding
@@ -376,36 +266,22 @@ module Square
376
266
  # @return [CalculateLoyaltyPointsResponse Hash] response from the API call
377
267
  def calculate_loyalty_points(program_id:,
378
268
  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
- )
269
+ new_api_call_builder
270
+ .request(new_request_builder(HttpMethodEnum::POST,
271
+ '/v2/loyalty/programs/{program_id}/calculate',
272
+ 'default')
273
+ .template_param(new_parameter(program_id, key: 'program_id')
274
+ .should_encode(true))
275
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
276
+ .body_param(new_parameter(body))
277
+ .header_param(new_parameter('application/json', key: 'accept'))
278
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
279
+ .auth(Single.new('global')))
280
+ .response(new_response_handler
281
+ .deserializer(APIHelper.method(:json_deserialize))
282
+ .is_api_response(true)
283
+ .convertor(ApiResponse.method(:create)))
284
+ .execute
409
285
  end
410
286
 
411
287
  # Lists the loyalty promotions associated with a [loyalty
@@ -413,9 +289,9 @@ module Square
413
289
  # Results are sorted by the `created_at` date in descending order (newest to
414
290
  # oldest).
415
291
  # @param [String] program_id Required parameter: The ID of the base [loyalty
416
- # program]($m/LoyaltyProgram). To get the program ID, call
417
- # [RetrieveLoyaltyProgram]($e/Loyalty/RetrieveLoyaltyProgram) using the
418
- # `main` keyword.
292
+ # program](entity:LoyaltyProgram). To get the program ID, call
293
+ # [RetrieveLoyaltyProgram](api-endpoint:Loyalty-RetrieveLoyaltyProgram)
294
+ # using the `main` keyword.
419
295
  # @param [LoyaltyPromotionStatus] status Optional parameter: The status to
420
296
  # filter the results by. If a status is provided, only loyalty promotions
421
297
  # with the specified status are returned. Otherwise, all loyalty promotions
@@ -436,40 +312,22 @@ module Square
436
312
  status: nil,
437
313
  cursor: nil,
438
314
  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
- )
315
+ new_api_call_builder
316
+ .request(new_request_builder(HttpMethodEnum::GET,
317
+ '/v2/loyalty/programs/{program_id}/promotions',
318
+ 'default')
319
+ .template_param(new_parameter(program_id, key: 'program_id')
320
+ .should_encode(true))
321
+ .query_param(new_parameter(status, key: 'status'))
322
+ .query_param(new_parameter(cursor, key: 'cursor'))
323
+ .query_param(new_parameter(limit, key: 'limit'))
324
+ .header_param(new_parameter('application/json', key: 'accept'))
325
+ .auth(Single.new('global')))
326
+ .response(new_response_handler
327
+ .deserializer(APIHelper.method(:json_deserialize))
328
+ .is_api_response(true)
329
+ .convertor(ApiResponse.method(:create)))
330
+ .execute
473
331
  end
474
332
 
475
333
  # Creates a loyalty promotion for a [loyalty program]($m/LoyaltyProgram). A
@@ -482,87 +340,59 @@ module Square
482
340
  # loyalty promotions with an
483
341
  # `ACTIVE` or `SCHEDULED` status.
484
342
  # @param [String] program_id Required parameter: The ID of the [loyalty
485
- # program]($m/LoyaltyProgram) to associate with the promotion. To get the
486
- # program ID, call
487
- # [RetrieveLoyaltyProgram]($e/Loyalty/RetrieveLoyaltyProgram) using the
488
- # `main` keyword.
343
+ # program](entity:LoyaltyProgram) to associate with the promotion. To get
344
+ # the program ID, call
345
+ # [RetrieveLoyaltyProgram](api-endpoint:Loyalty-RetrieveLoyaltyProgram)
346
+ # using the `main` keyword.
489
347
  # @param [CreateLoyaltyPromotionRequest] body Required parameter: An object
490
348
  # containing the fields to POST for the request. See the corresponding
491
349
  # object definition for field details.
492
350
  # @return [CreateLoyaltyPromotionResponse Hash] response from the API call
493
351
  def create_loyalty_promotion(program_id:,
494
352
  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
- )
353
+ new_api_call_builder
354
+ .request(new_request_builder(HttpMethodEnum::POST,
355
+ '/v2/loyalty/programs/{program_id}/promotions',
356
+ 'default')
357
+ .template_param(new_parameter(program_id, key: 'program_id')
358
+ .should_encode(true))
359
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
360
+ .body_param(new_parameter(body))
361
+ .header_param(new_parameter('application/json', key: 'accept'))
362
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
363
+ .auth(Single.new('global')))
364
+ .response(new_response_handler
365
+ .deserializer(APIHelper.method(:json_deserialize))
366
+ .is_api_response(true)
367
+ .convertor(ApiResponse.method(:create)))
368
+ .execute
525
369
  end
526
370
 
527
371
  # Retrieves a loyalty promotion.
528
372
  # @param [String] promotion_id Required parameter: The ID of the [loyalty
529
- # promotion]($m/LoyaltyPromotion) to retrieve.
373
+ # promotion](entity:LoyaltyPromotion) to retrieve.
530
374
  # @param [String] program_id Required parameter: The ID of the base [loyalty
531
- # program]($m/LoyaltyProgram). To get the program ID, call
532
- # [RetrieveLoyaltyProgram]($e/Loyalty/RetrieveLoyaltyProgram) using the
533
- # `main` keyword.
375
+ # program](entity:LoyaltyProgram). To get the program ID, call
376
+ # [RetrieveLoyaltyProgram](api-endpoint:Loyalty-RetrieveLoyaltyProgram)
377
+ # using the `main` keyword.
534
378
  # @return [RetrieveLoyaltyPromotionResponse Hash] response from the API call
535
379
  def retrieve_loyalty_promotion(promotion_id:,
536
380
  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
- )
381
+ new_api_call_builder
382
+ .request(new_request_builder(HttpMethodEnum::GET,
383
+ '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}',
384
+ 'default')
385
+ .template_param(new_parameter(promotion_id, key: 'promotion_id')
386
+ .should_encode(true))
387
+ .template_param(new_parameter(program_id, key: 'program_id')
388
+ .should_encode(true))
389
+ .header_param(new_parameter('application/json', key: 'accept'))
390
+ .auth(Single.new('global')))
391
+ .response(new_response_handler
392
+ .deserializer(APIHelper.method(:json_deserialize))
393
+ .is_api_response(true)
394
+ .convertor(ApiResponse.method(:create)))
395
+ .execute
566
396
  end
567
397
 
568
398
  # Cancels a loyalty promotion. Use this endpoint to cancel an `ACTIVE`
@@ -574,42 +404,28 @@ module Square
574
404
  # you create a new one.
575
405
  # This endpoint sets the loyalty promotion to the `CANCELED` state
576
406
  # @param [String] promotion_id Required parameter: The ID of the [loyalty
577
- # promotion]($m/LoyaltyPromotion) to cancel. You can cancel a promotion that
578
- # has an `ACTIVE` or `SCHEDULED` status.
407
+ # promotion](entity:LoyaltyPromotion) to cancel. You can cancel a promotion
408
+ # that has an `ACTIVE` or `SCHEDULED` status.
579
409
  # @param [String] program_id Required parameter: The ID of the base [loyalty
580
- # program]($m/LoyaltyProgram).
410
+ # program](entity:LoyaltyProgram).
581
411
  # @return [CancelLoyaltyPromotionResponse Hash] response from the API call
582
412
  def cancel_loyalty_promotion(promotion_id:,
583
413
  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
- )
414
+ new_api_call_builder
415
+ .request(new_request_builder(HttpMethodEnum::POST,
416
+ '/v2/loyalty/programs/{program_id}/promotions/{promotion_id}/cancel',
417
+ 'default')
418
+ .template_param(new_parameter(promotion_id, key: 'promotion_id')
419
+ .should_encode(true))
420
+ .template_param(new_parameter(program_id, key: 'program_id')
421
+ .should_encode(true))
422
+ .header_param(new_parameter('application/json', key: 'accept'))
423
+ .auth(Single.new('global')))
424
+ .response(new_response_handler
425
+ .deserializer(APIHelper.method(:json_deserialize))
426
+ .is_api_response(true)
427
+ .convertor(ApiResponse.method(:create)))
428
+ .execute
613
429
  end
614
430
 
615
431
  # Creates a loyalty reward. In the process, the endpoint does following:
@@ -625,32 +441,20 @@ module Square
625
441
  # object definition for field details.
626
442
  # @return [CreateLoyaltyRewardResponse Hash] response from the API call
627
443
  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
- )
444
+ new_api_call_builder
445
+ .request(new_request_builder(HttpMethodEnum::POST,
446
+ '/v2/loyalty/rewards',
447
+ 'default')
448
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
449
+ .body_param(new_parameter(body))
450
+ .header_param(new_parameter('application/json', key: 'accept'))
451
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
452
+ .auth(Single.new('global')))
453
+ .response(new_response_handler
454
+ .deserializer(APIHelper.method(:json_deserialize))
455
+ .is_api_response(true)
456
+ .convertor(ApiResponse.method(:create)))
457
+ .execute
654
458
  end
655
459
 
656
460
  # Searches for loyalty rewards. This endpoint accepts a request with no
@@ -665,32 +469,20 @@ module Square
665
469
  # object definition for field details.
666
470
  # @return [SearchLoyaltyRewardsResponse Hash] response from the API call
667
471
  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
- )
472
+ new_api_call_builder
473
+ .request(new_request_builder(HttpMethodEnum::POST,
474
+ '/v2/loyalty/rewards/search',
475
+ 'default')
476
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
477
+ .body_param(new_parameter(body))
478
+ .header_param(new_parameter('application/json', key: 'accept'))
479
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
480
+ .auth(Single.new('global')))
481
+ .response(new_response_handler
482
+ .deserializer(APIHelper.method(:json_deserialize))
483
+ .is_api_response(true)
484
+ .convertor(ApiResponse.method(:create)))
485
+ .execute
694
486
  end
695
487
 
696
488
  # Deletes a loyalty reward by doing the following:
@@ -701,72 +493,42 @@ module Square
701
493
  # discounts.
702
494
  # You cannot delete a reward that has reached the terminal state (REDEEMED).
703
495
  # @param [String] reward_id Required parameter: The ID of the [loyalty
704
- # reward]($m/LoyaltyReward) to delete.
496
+ # reward](entity:LoyaltyReward) to delete.
705
497
  # @return [DeleteLoyaltyRewardResponse Hash] response from the API call
706
498
  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
- )
499
+ new_api_call_builder
500
+ .request(new_request_builder(HttpMethodEnum::DELETE,
501
+ '/v2/loyalty/rewards/{reward_id}',
502
+ 'default')
503
+ .template_param(new_parameter(reward_id, key: 'reward_id')
504
+ .should_encode(true))
505
+ .header_param(new_parameter('application/json', key: 'accept'))
506
+ .auth(Single.new('global')))
507
+ .response(new_response_handler
508
+ .deserializer(APIHelper.method(:json_deserialize))
509
+ .is_api_response(true)
510
+ .convertor(ApiResponse.method(:create)))
511
+ .execute
735
512
  end
736
513
 
737
514
  # Retrieves a loyalty reward.
738
515
  # @param [String] reward_id Required parameter: The ID of the [loyalty
739
- # reward]($m/LoyaltyReward) to retrieve.
516
+ # reward](entity:LoyaltyReward) to retrieve.
740
517
  # @return [RetrieveLoyaltyRewardResponse Hash] response from the API call
741
518
  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
- )
519
+ new_api_call_builder
520
+ .request(new_request_builder(HttpMethodEnum::GET,
521
+ '/v2/loyalty/rewards/{reward_id}',
522
+ 'default')
523
+ .template_param(new_parameter(reward_id, key: 'reward_id')
524
+ .should_encode(true))
525
+ .header_param(new_parameter('application/json', key: 'accept'))
526
+ .auth(Single.new('global')))
527
+ .response(new_response_handler
528
+ .deserializer(APIHelper.method(:json_deserialize))
529
+ .is_api_response(true)
530
+ .convertor(ApiResponse.method(:create)))
531
+ .execute
770
532
  end
771
533
 
772
534
  # Redeems a loyalty reward.
@@ -778,43 +540,29 @@ module Square
778
540
  # In other words, points used for the reward cannot be returned
779
541
  # to the account.
780
542
  # @param [String] reward_id Required parameter: The ID of the [loyalty
781
- # reward]($m/LoyaltyReward) to redeem.
543
+ # reward](entity:LoyaltyReward) to redeem.
782
544
  # @param [RedeemLoyaltyRewardRequest] body Required parameter: An object
783
545
  # containing the fields to POST for the request. See the corresponding
784
546
  # object definition for field details.
785
547
  # @return [RedeemLoyaltyRewardResponse Hash] response from the API call
786
548
  def redeem_loyalty_reward(reward_id:,
787
549
  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
- )
550
+ new_api_call_builder
551
+ .request(new_request_builder(HttpMethodEnum::POST,
552
+ '/v2/loyalty/rewards/{reward_id}/redeem',
553
+ 'default')
554
+ .template_param(new_parameter(reward_id, key: 'reward_id')
555
+ .should_encode(true))
556
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
557
+ .body_param(new_parameter(body))
558
+ .header_param(new_parameter('application/json', key: 'accept'))
559
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
560
+ .auth(Single.new('global')))
561
+ .response(new_response_handler
562
+ .deserializer(APIHelper.method(:json_deserialize))
563
+ .is_api_response(true)
564
+ .convertor(ApiResponse.method(:create)))
565
+ .execute
818
566
  end
819
567
  end
820
568
  end