square.rb 5.2.2.20200422 → 5.3.0.20200528

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cb76727d70686f42bfdb4822a48a4e94f9266c706eace4beee4ae31665f651a
4
- data.tar.gz: cf8261b678b0f8c9c0f5016f8f679d56969f7c4b23598580d3fbb055c4211ce1
3
+ metadata.gz: 4df584cf8656280c84a929e33d017ae45261bb30afdfed941a8e7c775995ea45
4
+ data.tar.gz: c87a6cbd1d57921bc3b3251135ebdc40d02dd007d16a59bab366e6f10123b8eb
5
5
  SHA512:
6
- metadata.gz: 8848dab1cc5f701fe8f3cf49ae510c7f016b9422af39bb63e7b24aa16bc9559a8fd4c135eb57d94d6d9d9ec520311df3376f929bae4677e99dfb3f54560a9de0
7
- data.tar.gz: 0e33550b5db4f37e88d7341abdad8c515be1f2f1963e4b479d99bd115091f6f21f75684afbc66d1b70ad6e0e63aefd33f40557ea21bf4a05a1976a67e58bae3c
6
+ metadata.gz: c5acce30bed99da12a50425ee308932eeab669e3791a5f849224f49a2ffa3dc91bcdbff296a011f21d2c03d31104a6bfbf5d5f11da93658c44d270db9e21b85a
7
+ data.tar.gz: 063afe2bce7b09d25bfe6941c63de99d03ededbea209f67cba6e89096f573650c099e76486d69a39466c639a58b20afccbc330a3ef5231eeeeafa9892bcdcb03
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 Square, Inc.
1
+ Copyright 2020 Square, Inc.
2
2
  Licensed under the Apache License, Version 2.0 (the "License");
3
3
  you may not use this file except in compliance with the License.
4
4
  You may obtain a copy of the License at
@@ -52,6 +52,7 @@ require_relative 'square/api/reporting_api.rb'
52
52
  require_relative 'square/api/checkout_api.rb'
53
53
  require_relative 'square/api/orders_api.rb'
54
54
  require_relative 'square/api/transactions_api.rb'
55
+ require_relative 'square/api/loyalty_api.rb'
55
56
  require_relative 'square/api/merchants_api.rb'
56
57
  require_relative 'square/api/payments_api.rb'
57
58
  require_relative 'square/api/refunds_api.rb'
@@ -8,8 +8,8 @@ module Square
8
8
  @http_call_back = http_call_back
9
9
 
10
10
  @global_headers = {
11
- 'user-agent' => 'Square-Ruby-SDK/5.2.2.20200422',
12
- 'Square-Version' => '2020-04-22'
11
+ 'user-agent' => 'Square-Ruby-SDK/5.3.0.20200528',
12
+ 'Square-Version' => '2020-05-28'
13
13
  }
14
14
  end
15
15
 
@@ -5,7 +5,13 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Lists a business's customers.
8
+ # Lists customer profiles associated with a Square account.
9
+ # Under normal operating conditions, newly created or updated customer
10
+ # profiles become available
11
+ # for the listing operation in well under 30 seconds. Occasionally,
12
+ # propagation of the new or updated
13
+ # profiles can take closer to one minute or longer, espeically during
14
+ # network incidents and outages.
9
15
  # @param [String] cursor Optional parameter: A pagination cursor returned by
10
16
  # a previous call to this endpoint. Provide this to retrieve the next set of
11
17
  # results for your original query. See the [Pagination
@@ -91,10 +97,17 @@ module Square
91
97
  ApiResponse.new(_response, data: decoded, errors: _errors)
92
98
  end
93
99
 
94
- # Searches the customer profiles associated with a Square account.
95
- # Calling SearchCustomers without an explicit query parameter returns all
100
+ # Searches the customer profiles associated with a Square account using
101
+ # one or more supported query filters.
102
+ # Calling `SearchCustomers` without any explicit query filter returns all
96
103
  # customer profiles ordered alphabetically based on `given_name` and
97
104
  # `family_name`.
105
+ # Under normal operating conditions, newly created or updated customer
106
+ # profiles become available
107
+ # for the search operation in well under 30 seconds. Occasionally,
108
+ # propagation of the new or updated
109
+ # profiles can take closer to one minute or longer, espeically during
110
+ # network incidents and outages.
98
111
  # @param [SearchCustomersRequest] body Required parameter: An object
99
112
  # containing the fields to POST for the request. See the corresponding
100
113
  # object definition for field details.
@@ -0,0 +1,543 @@
1
+ module Square
2
+ # LoyaltyApi
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
+ # Creates a loyalty account. For more information, see
9
+ # [Create a loyalty
10
+ # account](https://developer.squareup.com/docs/docs/loyalty-api/overview/#lo
11
+ # yalty-overview-create-account).
12
+ # @param [CreateLoyaltyAccountRequest] body Required parameter: An object
13
+ # containing the fields to POST for the request. See the corresponding
14
+ # object definition for field details.
15
+ # @return [CreateLoyaltyAccountResponse Hash] response from the API call
16
+ def create_loyalty_account(body:)
17
+ # Prepare query url.
18
+ _query_builder = config.get_base_uri
19
+ _query_builder << '/v2/loyalty/accounts'
20
+ _query_url = APIHelper.clean_url _query_builder
21
+
22
+ # Prepare headers.
23
+ _headers = {
24
+ 'accept' => 'application/json',
25
+ 'content-type' => 'application/json; charset=utf-8'
26
+ }
27
+
28
+ # Prepare and execute HttpRequest.
29
+ _request = config.http_client.post(
30
+ _query_url,
31
+ headers: _headers,
32
+ parameters: body.to_json
33
+ )
34
+ OAuth2.apply(config, _request)
35
+ _response = execute_request(_request)
36
+
37
+ # Return appropriate response type.
38
+ decoded = APIHelper.json_deserialize(_response.raw_body)
39
+ _errors = APIHelper.map_response(decoded, ['errors'])
40
+ ApiResponse.new(_response, data: decoded, errors: _errors)
41
+ end
42
+
43
+ # Searches for loyalty accounts.
44
+ # In the current implementation, you can search for a loyalty account using
45
+ # the phone number associated with the account.
46
+ # If no phone number is provided, all loyalty accounts are returned.
47
+ # @param [SearchLoyaltyAccountsRequest] body Required parameter: An object
48
+ # containing the fields to POST for the request. See the corresponding
49
+ # object definition for field details.
50
+ # @return [SearchLoyaltyAccountsResponse Hash] response from the API call
51
+ def search_loyalty_accounts(body:)
52
+ # Prepare query url.
53
+ _query_builder = config.get_base_uri
54
+ _query_builder << '/v2/loyalty/accounts/search'
55
+ _query_url = APIHelper.clean_url _query_builder
56
+
57
+ # Prepare headers.
58
+ _headers = {
59
+ 'accept' => 'application/json',
60
+ 'content-type' => 'application/json; charset=utf-8'
61
+ }
62
+
63
+ # Prepare and execute HttpRequest.
64
+ _request = config.http_client.post(
65
+ _query_url,
66
+ headers: _headers,
67
+ parameters: body.to_json
68
+ )
69
+ OAuth2.apply(config, _request)
70
+ _response = execute_request(_request)
71
+
72
+ # Return appropriate response type.
73
+ decoded = APIHelper.json_deserialize(_response.raw_body)
74
+ _errors = APIHelper.map_response(decoded, ['errors'])
75
+ ApiResponse.new(_response, data: decoded, errors: _errors)
76
+ end
77
+
78
+ # Retrieves a loyalty account.
79
+ # @param [String] account_id Required parameter: The ID of the [loyalty
80
+ # account](#type-LoyaltyAccount) to retrieve.
81
+ # @return [RetrieveLoyaltyAccountResponse Hash] response from the API call
82
+ def retrieve_loyalty_account(account_id:)
83
+ # Prepare query url.
84
+ _query_builder = config.get_base_uri
85
+ _query_builder << '/v2/loyalty/accounts/{account_id}'
86
+ _query_builder = APIHelper.append_url_with_template_parameters(
87
+ _query_builder,
88
+ 'account_id' => account_id
89
+ )
90
+ _query_url = APIHelper.clean_url _query_builder
91
+
92
+ # Prepare headers.
93
+ _headers = {
94
+ 'accept' => 'application/json'
95
+ }
96
+
97
+ # Prepare and execute HttpRequest.
98
+ _request = config.http_client.get(
99
+ _query_url,
100
+ headers: _headers
101
+ )
102
+ OAuth2.apply(config, _request)
103
+ _response = execute_request(_request)
104
+
105
+ # Return appropriate response type.
106
+ decoded = APIHelper.json_deserialize(_response.raw_body)
107
+ _errors = APIHelper.map_response(decoded, ['errors'])
108
+ ApiResponse.new(_response, data: decoded, errors: _errors)
109
+ end
110
+
111
+ # Adds points to a loyalty account.
112
+ # - If you are using the Orders API to manage orders, you only provide the
113
+ # `order_id`.
114
+ # The endpoint reads the order to compute points to add to the buyer's
115
+ # account.
116
+ # - If you are not using the Orders API to manage orders,
117
+ # you first perform a client-side computation to compute the points.
118
+ # For spend-based and visit-based programs, you can call
119
+ # `CalculateLoyaltyPoints` to compute the points. For more information,
120
+ # see [Loyalty Program
121
+ # Overview](https://developer.squareup.com/docs/docs/loyalty/overview).
122
+ # You then provide the points in a request to this endpoint.
123
+ # For more information, see [Accumulate
124
+ # points](https://developer.squareup.com/docs/docs/loyalty-api/overview/#acc
125
+ # umulate-points).
126
+ # @param [String] account_id Required parameter: The [loyalty
127
+ # account](#type-LoyaltyAccount) ID to which to add the points.
128
+ # @param [AccumulateLoyaltyPointsRequest] body Required parameter: An object
129
+ # containing the fields to POST for the request. See the corresponding
130
+ # object definition for field details.
131
+ # @return [AccumulateLoyaltyPointsResponse Hash] response from the API call
132
+ def accumulate_loyalty_points(account_id:,
133
+ body:)
134
+ # Prepare query url.
135
+ _query_builder = config.get_base_uri
136
+ _query_builder << '/v2/loyalty/accounts/{account_id}/accumulate'
137
+ _query_builder = APIHelper.append_url_with_template_parameters(
138
+ _query_builder,
139
+ 'account_id' => account_id
140
+ )
141
+ _query_url = APIHelper.clean_url _query_builder
142
+
143
+ # Prepare headers.
144
+ _headers = {
145
+ 'accept' => 'application/json',
146
+ 'content-type' => 'application/json; charset=utf-8'
147
+ }
148
+
149
+ # Prepare and execute HttpRequest.
150
+ _request = config.http_client.post(
151
+ _query_url,
152
+ headers: _headers,
153
+ parameters: body.to_json
154
+ )
155
+ OAuth2.apply(config, _request)
156
+ _response = execute_request(_request)
157
+
158
+ # Return appropriate response type.
159
+ decoded = APIHelper.json_deserialize(_response.raw_body)
160
+ _errors = APIHelper.map_response(decoded, ['errors'])
161
+ ApiResponse.new(_response, data: decoded, errors: _errors)
162
+ end
163
+
164
+ # Adds points to or subtracts points from a buyer's account.
165
+ # Use this endpoint only when you need to manually adjust points. Otherwise,
166
+ # in your application flow, you call
167
+ # [AccumulateLoyaltyPoints](https://developer.squareup.com/docs/reference/sq
168
+ # uare/loyalty-api/accumulate-loyalty-points)
169
+ # to add points when a buyer pays for the purchase.
170
+ # @param [String] account_id Required parameter: The ID of the [loyalty
171
+ # account](#type-LoyaltyAccount) in which to adjust the points.
172
+ # @param [AdjustLoyaltyPointsRequest] body Required parameter: An object
173
+ # containing the fields to POST for the request. See the corresponding
174
+ # object definition for field details.
175
+ # @return [AdjustLoyaltyPointsResponse Hash] response from the API call
176
+ def adjust_loyalty_points(account_id:,
177
+ body:)
178
+ # Prepare query url.
179
+ _query_builder = config.get_base_uri
180
+ _query_builder << '/v2/loyalty/accounts/{account_id}/adjust'
181
+ _query_builder = APIHelper.append_url_with_template_parameters(
182
+ _query_builder,
183
+ 'account_id' => account_id
184
+ )
185
+ _query_url = APIHelper.clean_url _query_builder
186
+
187
+ # Prepare headers.
188
+ _headers = {
189
+ 'accept' => 'application/json',
190
+ 'content-type' => 'application/json; charset=utf-8'
191
+ }
192
+
193
+ # Prepare and execute HttpRequest.
194
+ _request = config.http_client.post(
195
+ _query_url,
196
+ headers: _headers,
197
+ parameters: body.to_json
198
+ )
199
+ OAuth2.apply(config, _request)
200
+ _response = execute_request(_request)
201
+
202
+ # Return appropriate response type.
203
+ decoded = APIHelper.json_deserialize(_response.raw_body)
204
+ _errors = APIHelper.map_response(decoded, ['errors'])
205
+ ApiResponse.new(_response, data: decoded, errors: _errors)
206
+ end
207
+
208
+ # Searches for loyalty events.
209
+ # A Square loyalty program maintains a ledger of events that occur during
210
+ # the lifetime of a
211
+ # buyer's loyalty account. Each change in the point balance
212
+ # (for example, points earned, points redeemed, and points expired) is
213
+ # recorded in the ledger. Using this endpoint, you can search the ledger for
214
+ # events.
215
+ # For more information, see
216
+ # [Loyalty
217
+ # events](https://developer.squareup.com/docs/docs/loyalty-api/overview/#loy
218
+ # alty-events).
219
+ # @param [SearchLoyaltyEventsRequest] body Required parameter: An object
220
+ # containing the fields to POST for the request. See the corresponding
221
+ # object definition for field details.
222
+ # @return [SearchLoyaltyEventsResponse Hash] response from the API call
223
+ def search_loyalty_events(body:)
224
+ # Prepare query url.
225
+ _query_builder = config.get_base_uri
226
+ _query_builder << '/v2/loyalty/events/search'
227
+ _query_url = APIHelper.clean_url _query_builder
228
+
229
+ # Prepare headers.
230
+ _headers = {
231
+ 'accept' => 'application/json',
232
+ 'content-type' => 'application/json; charset=utf-8'
233
+ }
234
+
235
+ # Prepare and execute HttpRequest.
236
+ _request = config.http_client.post(
237
+ _query_url,
238
+ headers: _headers,
239
+ parameters: body.to_json
240
+ )
241
+ OAuth2.apply(config, _request)
242
+ _response = execute_request(_request)
243
+
244
+ # Return appropriate response type.
245
+ decoded = APIHelper.json_deserialize(_response.raw_body)
246
+ _errors = APIHelper.map_response(decoded, ['errors'])
247
+ ApiResponse.new(_response, data: decoded, errors: _errors)
248
+ end
249
+
250
+ # Returns a list of loyalty programs in the seller's account.
251
+ # Currently, a seller can only have one loyalty program. For more
252
+ # information, see
253
+ # [Loyalty
254
+ # Overview](https://developer.squareup.com/docs/docs/loyalty/overview).
255
+ # .
256
+ # @return [ListLoyaltyProgramsResponse Hash] response from the API call
257
+ def list_loyalty_programs
258
+ # Prepare query url.
259
+ _query_builder = config.get_base_uri
260
+ _query_builder << '/v2/loyalty/programs'
261
+ _query_url = APIHelper.clean_url _query_builder
262
+
263
+ # Prepare headers.
264
+ _headers = {
265
+ 'accept' => 'application/json'
266
+ }
267
+
268
+ # Prepare and execute HttpRequest.
269
+ _request = config.http_client.get(
270
+ _query_url,
271
+ headers: _headers
272
+ )
273
+ OAuth2.apply(config, _request)
274
+ _response = execute_request(_request)
275
+
276
+ # Return appropriate response type.
277
+ decoded = APIHelper.json_deserialize(_response.raw_body)
278
+ _errors = APIHelper.map_response(decoded, ['errors'])
279
+ ApiResponse.new(_response, data: decoded, errors: _errors)
280
+ end
281
+
282
+ # Calculates the points a purchase earns.
283
+ # - If you are using the Orders API to manage orders, you provide `order_id`
284
+ # in the request. The
285
+ # endpoint calculates the points by reading the order.
286
+ # - If you are not using the Orders API to manage orders, you provide the
287
+ # purchase amount in
288
+ # the request for the endpoint to calculate the points.
289
+ # An application might call this endpoint to show the points that a buyer
290
+ # can earn with the
291
+ # specific purchase.
292
+ # @param [String] program_id Required parameter: The [loyalty
293
+ # program](#type-LoyaltyProgram) ID, which defines the rules for accruing
294
+ # points.
295
+ # @param [CalculateLoyaltyPointsRequest] body Required parameter: An object
296
+ # containing the fields to POST for the request. See the corresponding
297
+ # object definition for field details.
298
+ # @return [CalculateLoyaltyPointsResponse Hash] response from the API call
299
+ def calculate_loyalty_points(program_id:,
300
+ body:)
301
+ # Prepare query url.
302
+ _query_builder = config.get_base_uri
303
+ _query_builder << '/v2/loyalty/programs/{program_id}/calculate'
304
+ _query_builder = APIHelper.append_url_with_template_parameters(
305
+ _query_builder,
306
+ 'program_id' => program_id
307
+ )
308
+ _query_url = APIHelper.clean_url _query_builder
309
+
310
+ # Prepare headers.
311
+ _headers = {
312
+ 'accept' => 'application/json',
313
+ 'content-type' => 'application/json; charset=utf-8'
314
+ }
315
+
316
+ # Prepare and execute HttpRequest.
317
+ _request = config.http_client.post(
318
+ _query_url,
319
+ headers: _headers,
320
+ parameters: body.to_json
321
+ )
322
+ OAuth2.apply(config, _request)
323
+ _response = execute_request(_request)
324
+
325
+ # Return appropriate response type.
326
+ decoded = APIHelper.json_deserialize(_response.raw_body)
327
+ _errors = APIHelper.map_response(decoded, ['errors'])
328
+ ApiResponse.new(_response, data: decoded, errors: _errors)
329
+ end
330
+
331
+ # Creates a loyalty reward. In the process, the endpoint does following:
332
+ # - Uses the `reward_tier_id` in the request to determine the number of
333
+ # points
334
+ # to lock for this reward.
335
+ # - If the request includes `order_id`, it adds the reward and related
336
+ # discount to the order.
337
+ # After a reward is created, the points are locked and
338
+ # not available for the buyer to redeem another reward.
339
+ # For more information, see
340
+ # [Loyalty
341
+ # rewards](https://developer.squareup.com/docs/docs/loyalty-api/overview/#lo
342
+ # yalty-overview-loyalty-rewards).
343
+ # @param [CreateLoyaltyRewardRequest] body Required parameter: An object
344
+ # containing the fields to POST for the request. See the corresponding
345
+ # object definition for field details.
346
+ # @return [CreateLoyaltyRewardResponse Hash] response from the API call
347
+ def create_loyalty_reward(body:)
348
+ # Prepare query url.
349
+ _query_builder = config.get_base_uri
350
+ _query_builder << '/v2/loyalty/rewards'
351
+ _query_url = APIHelper.clean_url _query_builder
352
+
353
+ # Prepare headers.
354
+ _headers = {
355
+ 'accept' => 'application/json',
356
+ 'content-type' => 'application/json; charset=utf-8'
357
+ }
358
+
359
+ # Prepare and execute HttpRequest.
360
+ _request = config.http_client.post(
361
+ _query_url,
362
+ headers: _headers,
363
+ parameters: body.to_json
364
+ )
365
+ OAuth2.apply(config, _request)
366
+ _response = execute_request(_request)
367
+
368
+ # Return appropriate response type.
369
+ decoded = APIHelper.json_deserialize(_response.raw_body)
370
+ _errors = APIHelper.map_response(decoded, ['errors'])
371
+ ApiResponse.new(_response, data: decoded, errors: _errors)
372
+ end
373
+
374
+ # Searches for loyalty rewards in a loyalty account.
375
+ # In the current implementation, the endpoint supports search by the reward
376
+ # `status`.
377
+ # If you know a reward ID, use the
378
+ # [RetrieveLoyaltyReward](https://developer.squareup.com/docs/reference/squa
379
+ # re/loyalty-api/retrieve-loyalty-reward) endpoint.
380
+ # For more information about loyalty rewards, see
381
+ # [Loyalty
382
+ # Rewards](https://developer.squareup.com/docs/docs/loyalty-api/overview/#lo
383
+ # yalty-rewards).
384
+ # @param [SearchLoyaltyRewardsRequest] body Required parameter: An object
385
+ # containing the fields to POST for the request. See the corresponding
386
+ # object definition for field details.
387
+ # @return [SearchLoyaltyRewardsResponse Hash] response from the API call
388
+ def search_loyalty_rewards(body:)
389
+ # Prepare query url.
390
+ _query_builder = config.get_base_uri
391
+ _query_builder << '/v2/loyalty/rewards/search'
392
+ _query_url = APIHelper.clean_url _query_builder
393
+
394
+ # Prepare headers.
395
+ _headers = {
396
+ 'accept' => 'application/json',
397
+ 'content-type' => 'application/json; charset=utf-8'
398
+ }
399
+
400
+ # Prepare and execute HttpRequest.
401
+ _request = config.http_client.post(
402
+ _query_url,
403
+ headers: _headers,
404
+ parameters: body.to_json
405
+ )
406
+ OAuth2.apply(config, _request)
407
+ _response = execute_request(_request)
408
+
409
+ # Return appropriate response type.
410
+ decoded = APIHelper.json_deserialize(_response.raw_body)
411
+ _errors = APIHelper.map_response(decoded, ['errors'])
412
+ ApiResponse.new(_response, data: decoded, errors: _errors)
413
+ end
414
+
415
+ # Deletes a loyalty reward by doing the following:
416
+ # - Returns the loyalty points back to the loyalty account.
417
+ # - If an order ID was specified when the reward was created
418
+ # (see
419
+ # [CreateLoyaltyReward](https://developer.squareup.com/docs/reference/square
420
+ # /loyalty-api/create-loyalty-reward)),
421
+ # it updates the order by removing the reward and related
422
+ # discounts.
423
+ # You cannot delete a reward that has reached the terminal state (REDEEMED).
424
+ # For more information, see
425
+ # [Loyalty
426
+ # rewards](https://developer.squareup.com/docs/docs/loyalty-api/overview/#lo
427
+ # yalty-overview-loyalty-rewards).
428
+ # @param [String] reward_id Required parameter: The ID of the [loyalty
429
+ # reward](#type-LoyaltyReward) to delete.
430
+ # @return [DeleteLoyaltyRewardResponse Hash] response from the API call
431
+ def delete_loyalty_reward(reward_id:)
432
+ # Prepare query url.
433
+ _query_builder = config.get_base_uri
434
+ _query_builder << '/v2/loyalty/rewards/{reward_id}'
435
+ _query_builder = APIHelper.append_url_with_template_parameters(
436
+ _query_builder,
437
+ 'reward_id' => reward_id
438
+ )
439
+ _query_url = APIHelper.clean_url _query_builder
440
+
441
+ # Prepare headers.
442
+ _headers = {
443
+ 'accept' => 'application/json'
444
+ }
445
+
446
+ # Prepare and execute HttpRequest.
447
+ _request = config.http_client.delete(
448
+ _query_url,
449
+ headers: _headers
450
+ )
451
+ OAuth2.apply(config, _request)
452
+ _response = execute_request(_request)
453
+
454
+ # Return appropriate response type.
455
+ decoded = APIHelper.json_deserialize(_response.raw_body)
456
+ _errors = APIHelper.map_response(decoded, ['errors'])
457
+ ApiResponse.new(_response, data: decoded, errors: _errors)
458
+ end
459
+
460
+ # Retrieves a loyalty reward.
461
+ # @param [String] reward_id Required parameter: The ID of the [loyalty
462
+ # reward](#type-LoyaltyReward) to retrieve.
463
+ # @return [RetrieveLoyaltyRewardResponse Hash] response from the API call
464
+ def retrieve_loyalty_reward(reward_id:)
465
+ # Prepare query url.
466
+ _query_builder = config.get_base_uri
467
+ _query_builder << '/v2/loyalty/rewards/{reward_id}'
468
+ _query_builder = APIHelper.append_url_with_template_parameters(
469
+ _query_builder,
470
+ 'reward_id' => reward_id
471
+ )
472
+ _query_url = APIHelper.clean_url _query_builder
473
+
474
+ # Prepare headers.
475
+ _headers = {
476
+ 'accept' => 'application/json'
477
+ }
478
+
479
+ # Prepare and execute HttpRequest.
480
+ _request = config.http_client.get(
481
+ _query_url,
482
+ headers: _headers
483
+ )
484
+ OAuth2.apply(config, _request)
485
+ _response = execute_request(_request)
486
+
487
+ # Return appropriate response type.
488
+ decoded = APIHelper.json_deserialize(_response.raw_body)
489
+ _errors = APIHelper.map_response(decoded, ['errors'])
490
+ ApiResponse.new(_response, data: decoded, errors: _errors)
491
+ end
492
+
493
+ # Redeems a loyalty reward.
494
+ # The endpoint sets the reward to the terminal state (`REDEEMED`).
495
+ # If you are using your own order processing system (not using the
496
+ # Orders API), you call this endpoint after the buyer paid for the
497
+ # purchase.
498
+ # After the reward reaches the terminal state, it cannot be deleted.
499
+ # In other words, points used for the reward cannot be returned
500
+ # to the account.
501
+ # For more information, see
502
+ # [Loyalty
503
+ # rewards](https://developer.squareup.com/docs/docs/loyalty-api/overview/#lo
504
+ # yalty-overview-loyalty-rewards).
505
+ # @param [String] reward_id Required parameter: The ID of the [loyalty
506
+ # reward](#type-LoyaltyReward) to redeem.
507
+ # @param [RedeemLoyaltyRewardRequest] body Required parameter: An object
508
+ # containing the fields to POST for the request. See the corresponding
509
+ # object definition for field details.
510
+ # @return [RedeemLoyaltyRewardResponse Hash] response from the API call
511
+ def redeem_loyalty_reward(reward_id:,
512
+ body:)
513
+ # Prepare query url.
514
+ _query_builder = config.get_base_uri
515
+ _query_builder << '/v2/loyalty/rewards/{reward_id}/redeem'
516
+ _query_builder = APIHelper.append_url_with_template_parameters(
517
+ _query_builder,
518
+ 'reward_id' => reward_id
519
+ )
520
+ _query_url = APIHelper.clean_url _query_builder
521
+
522
+ # Prepare headers.
523
+ _headers = {
524
+ 'accept' => 'application/json',
525
+ 'content-type' => 'application/json; charset=utf-8'
526
+ }
527
+
528
+ # Prepare and execute HttpRequest.
529
+ _request = config.http_client.post(
530
+ _query_url,
531
+ headers: _headers,
532
+ parameters: body.to_json
533
+ )
534
+ OAuth2.apply(config, _request)
535
+ _response = execute_request(_request)
536
+
537
+ # Return appropriate response type.
538
+ decoded = APIHelper.json_deserialize(_response.raw_body)
539
+ _errors = APIHelper.map_response(decoded, ['errors'])
540
+ ApiResponse.new(_response, data: decoded, errors: _errors)
541
+ end
542
+ end
543
+ end
@@ -157,6 +157,38 @@ module Square
157
157
  ApiResponse.new(_response, data: decoded, errors: _errors)
158
158
  end
159
159
 
160
+ # Calculates an [Order](#type-order).
161
+ # @param [CalculateOrderRequest] body Required parameter: An object
162
+ # containing the fields to POST for the request. See the corresponding
163
+ # object definition for field details.
164
+ # @return [CalculateOrderResponse Hash] response from the API call
165
+ def calculate_order(body:)
166
+ # Prepare query url.
167
+ _query_builder = config.get_base_uri
168
+ _query_builder << '/v2/orders/calculate'
169
+ _query_url = APIHelper.clean_url _query_builder
170
+
171
+ # Prepare headers.
172
+ _headers = {
173
+ 'accept' => 'application/json',
174
+ 'content-type' => 'application/json; charset=utf-8'
175
+ }
176
+
177
+ # Prepare and execute HttpRequest.
178
+ _request = config.http_client.post(
179
+ _query_url,
180
+ headers: _headers,
181
+ parameters: body.to_json
182
+ )
183
+ OAuth2.apply(config, _request)
184
+ _response = execute_request(_request)
185
+
186
+ # Return appropriate response type.
187
+ decoded = APIHelper.json_deserialize(_response.raw_body)
188
+ _errors = APIHelper.map_response(decoded, ['errors'])
189
+ ApiResponse.new(_response, data: decoded, errors: _errors)
190
+ end
191
+
160
192
  # Search all orders for one or more locations. Orders include all sales,
161
193
  # returns, and exchanges regardless of how or when they entered the Square
162
194
  # Ecosystem (e.g. Point of Sale, Invoices, Connect APIs, etc).
@@ -4,11 +4,11 @@ module Square
4
4
  attr_reader :config
5
5
 
6
6
  def sdk_version
7
- '5.2.2.20200422'
7
+ '5.3.0.20200528'
8
8
  end
9
9
 
10
10
  def square_version
11
- '2020-04-22'
11
+ '2020-05-28'
12
12
  end
13
13
 
14
14
  # Access to mobile_authorization controller.
@@ -149,6 +149,12 @@ module Square
149
149
  @transactions ||= TransactionsApi.new config
150
150
  end
151
151
 
152
+ # Access to loyalty controller.
153
+ # @return [LoyaltyApi] Returns the controller instance.
154
+ def loyalty
155
+ @loyalty ||= LoyaltyApi.new config
156
+ end
157
+
152
158
  # Access to merchants controller.
153
159
  # @return [MerchantsApi] Returns the controller instance.
154
160
  def merchants
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: square.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2.20200422
4
+ version: 5.3.0.20200528
5
5
  platform: ruby
6
6
  authors:
7
7
  - Square Developer Platform
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-25 00:00:00.000000000 Z
11
+ date: 2020-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -133,6 +133,7 @@ files:
133
133
  - lib/square/api/inventory_api.rb
134
134
  - lib/square/api/labor_api.rb
135
135
  - lib/square/api/locations_api.rb
136
+ - lib/square/api/loyalty_api.rb
136
137
  - lib/square/api/merchants_api.rb
137
138
  - lib/square/api/mobile_authorization_api.rb
138
139
  - lib/square/api/o_auth_api.rb
@@ -190,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
191
  - !ruby/object:Gem::Version
191
192
  version: '0'
192
193
  requirements: []
193
- rubygems_version: 3.0.3
194
+ rubygems_version: 3.0.8
194
195
  signing_key:
195
196
  specification_version: 4
196
197
  summary: square