square.rb 15.0.0.20211020 → 17.1.0.20220120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,10 +31,13 @@ module Square
31
31
  # the given status are returned. For a list of refund status values, see
32
32
  # [PaymentRefund]($m/PaymentRefund). Default: If omitted, refunds are
33
33
  # returned regardless of their status.
34
- # @param [String] source_type Optional parameter: If provided, only refunds
35
- # with the given source type are returned. - `CARD` - List refunds only for
36
- # payments where `CARD` was specified as the payment source. Default: If
37
- # omitted, refunds are returned regardless of the source type.
34
+ # @param [String] source_type Optional parameter: If provided, only returns
35
+ # refunds whose payments have the indicated source type. Current values
36
+ # include `CARD`, `BANK_ACCOUNT`, `WALLET`, `CASH`, and `EXTERNAL`. For
37
+ # information about these payment source types, see [Take
38
+ # Payments](https://developer.squareup.com/docs/payments-api/take-payments).
39
+ # Default: If omitted, refunds are returned regardless of the source
40
+ # type.
38
41
  # @param [Integer] limit Optional parameter: The maximum number of results
39
42
  # to be returned in a single page. It is possible to receive fewer results
40
43
  # than the specified limit on a given page. If the supplied value is
@@ -105,7 +108,7 @@ module Square
105
108
  # Prepare headers.
106
109
  _headers = {
107
110
  'accept' => 'application/json',
108
- 'content-type' => 'application/json; charset=utf-8'
111
+ 'Content-Type' => 'application/json'
109
112
  }
110
113
 
111
114
  # Prepare and execute HttpRequest.
@@ -5,7 +5,8 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Lists the Square Online sites that belong to a seller.
8
+ # Lists the Square Online sites that belong to a seller. Sites are listed in
9
+ # descending order by the `created_at` date.
9
10
  # __Note:__ Square Online APIs are publicly available as part of an early
10
11
  # access program. For more information, see [Early access program for Square
11
12
  # Online
@@ -123,7 +123,7 @@ module Square
123
123
  # Prepare headers.
124
124
  _headers = {
125
125
  'accept' => 'application/json',
126
- 'content-type' => 'application/json; charset=utf-8'
126
+ 'Content-Type' => 'application/json'
127
127
  }
128
128
 
129
129
  # Prepare and execute HttpRequest.
@@ -5,7 +5,7 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Creates a subscription for a customer to a subscription plan.
8
+ # Creates a subscription to a subscription plan by a customer.
9
9
  # If you provide a card on file in the request, Square charges the card for
10
10
  # the subscription. Otherwise, Square bills an invoice to the customer's
11
11
  # email
@@ -25,7 +25,7 @@ module Square
25
25
  # Prepare headers.
26
26
  _headers = {
27
27
  'accept' => 'application/json',
28
- 'content-type' => 'application/json; charset=utf-8'
28
+ 'Content-Type' => 'application/json'
29
29
  }
30
30
 
31
31
  # Prepare and execute HttpRequest.
@@ -75,7 +75,7 @@ module Square
75
75
  # Prepare headers.
76
76
  _headers = {
77
77
  'accept' => 'application/json',
78
- 'content-type' => 'application/json; charset=utf-8'
78
+ 'Content-Type' => 'application/json'
79
79
  }
80
80
 
81
81
  # Prepare and execute HttpRequest.
@@ -98,8 +98,13 @@ module Square
98
98
  # Retrieves a subscription.
99
99
  # @param [String] subscription_id Required parameter: The ID of the
100
100
  # subscription to retrieve.
101
+ # @param [String] include Optional parameter: A query parameter to specify
102
+ # related information to be included in the response. The supported query
103
+ # parameter values are: - `actions`: to include scheduled actions on the
104
+ # targeted subscription.
101
105
  # @return [RetrieveSubscriptionResponse Hash] response from the API call
102
- def retrieve_subscription(subscription_id:)
106
+ def retrieve_subscription(subscription_id:,
107
+ include: nil)
103
108
  # Prepare query url.
104
109
  _query_builder = config.get_base_uri
105
110
  _query_builder << '/v2/subscriptions/{subscription_id}'
@@ -107,6 +112,10 @@ module Square
107
112
  _query_builder,
108
113
  'subscription_id' => { 'value' => subscription_id, 'encode' => true }
109
114
  )
115
+ _query_builder = APIHelper.append_url_with_query_parameters(
116
+ _query_builder,
117
+ 'include' => include
118
+ )
110
119
  _query_url = APIHelper.clean_url _query_builder
111
120
 
112
121
  # Prepare headers.
@@ -132,7 +141,7 @@ module Square
132
141
 
133
142
  # Updates a subscription. You can set, modify, and clear the
134
143
  # `subscription` field values.
135
- # @param [String] subscription_id Required parameter: The ID for the
144
+ # @param [String] subscription_id Required parameter: The ID of the
136
145
  # subscription to update.
137
146
  # @param [UpdateSubscriptionRequest] body Required parameter: An object
138
147
  # containing the fields to POST for the request. See the corresponding
@@ -152,7 +161,7 @@ module Square
152
161
  # Prepare headers.
153
162
  _headers = {
154
163
  'accept' => 'application/json',
155
- 'content-type' => 'application/json; charset=utf-8'
164
+ 'Content-Type' => 'application/json'
156
165
  }
157
166
 
158
167
  # Prepare and execute HttpRequest.
@@ -172,8 +181,50 @@ module Square
172
181
  )
173
182
  end
174
183
 
175
- # Sets the `canceled_date` field to the end of the active billing period.
176
- # After this date, the status changes from ACTIVE to CANCELED.
184
+ # Deletes a scheduled action for a subscription.
185
+ # @param [String] subscription_id Required parameter: The ID of the
186
+ # subscription the targeted action is to act upon.
187
+ # @param [String] action_id Required parameter: The ID of the targeted
188
+ # action to be deleted.
189
+ # @return [DeleteSubscriptionActionResponse Hash] response from the API call
190
+ def delete_subscription_action(subscription_id:,
191
+ action_id:)
192
+ # Prepare query url.
193
+ _query_builder = config.get_base_uri
194
+ _query_builder << '/v2/subscriptions/{subscription_id}/actions/{action_id}'
195
+ _query_builder = APIHelper.append_url_with_template_parameters(
196
+ _query_builder,
197
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true },
198
+ 'action_id' => { 'value' => action_id, 'encode' => true }
199
+ )
200
+ _query_url = APIHelper.clean_url _query_builder
201
+
202
+ # Prepare headers.
203
+ _headers = {
204
+ 'accept' => 'application/json'
205
+ }
206
+
207
+ # Prepare and execute HttpRequest.
208
+ _request = config.http_client.delete(
209
+ _query_url,
210
+ headers: _headers
211
+ )
212
+ OAuth2.apply(config, _request)
213
+ _response = execute_request(_request)
214
+
215
+ # Return appropriate response type.
216
+ decoded = APIHelper.json_deserialize(_response.raw_body)
217
+ _errors = APIHelper.map_response(decoded, ['errors'])
218
+ ApiResponse.new(
219
+ _response, data: decoded, errors: _errors
220
+ )
221
+ end
222
+
223
+ # Schedules a `CANCEL` action to cancel an active subscription
224
+ # by setting the `canceled_date` field to the end of the active billing
225
+ # period
226
+ # and changing the subscription status from ACTIVE to CANCELED after this
227
+ # date.
177
228
  # @param [String] subscription_id Required parameter: The ID of the
178
229
  # subscription to cancel.
179
230
  # @return [CancelSubscriptionResponse Hash] response from the API call
@@ -214,13 +265,15 @@ module Square
214
265
  # returned.
215
266
  # @param [String] subscription_id Required parameter: The ID of the
216
267
  # subscription to retrieve the events for.
217
- # @param [String] cursor Optional parameter: A pagination cursor returned by
218
- # a previous call to this endpoint. Provide this to retrieve the next set of
219
- # results for the original query. For more information, see
268
+ # @param [String] cursor Optional parameter: When the total number of
269
+ # resulting subscription events exceeds the limit of a paged response,
270
+ # specify the cursor returned from a preceding response here to fetch the
271
+ # next set of results. If the cursor is unset, the response contains the
272
+ # last page of the results. For more information, see
220
273
  # [Pagination](https://developer.squareup.com/docs/working-with-apis/paginat
221
274
  # ion).
222
275
  # @param [Integer] limit Optional parameter: The upper limit on the number
223
- # of subscription events to return in the response. Default: `200`
276
+ # of subscription events to return in a paged response.
224
277
  # @return [ListSubscriptionEventsResponse Hash] response from the API call
225
278
  def list_subscription_events(subscription_id:,
226
279
  cursor: nil,
@@ -260,11 +313,57 @@ module Square
260
313
  )
261
314
  end
262
315
 
263
- # Resumes a deactivated subscription.
316
+ # Schedules a `PAUSE` action to pause an active subscription.
317
+ # @param [String] subscription_id Required parameter: The ID of the
318
+ # subscription to pause.
319
+ # @param [PauseSubscriptionRequest] body Required parameter: An object
320
+ # containing the fields to POST for the request. See the corresponding
321
+ # object definition for field details.
322
+ # @return [PauseSubscriptionResponse Hash] response from the API call
323
+ def pause_subscription(subscription_id:,
324
+ body:)
325
+ # Prepare query url.
326
+ _query_builder = config.get_base_uri
327
+ _query_builder << '/v2/subscriptions/{subscription_id}/pause'
328
+ _query_builder = APIHelper.append_url_with_template_parameters(
329
+ _query_builder,
330
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
331
+ )
332
+ _query_url = APIHelper.clean_url _query_builder
333
+
334
+ # Prepare headers.
335
+ _headers = {
336
+ 'accept' => 'application/json',
337
+ 'Content-Type' => 'application/json'
338
+ }
339
+
340
+ # Prepare and execute HttpRequest.
341
+ _request = config.http_client.post(
342
+ _query_url,
343
+ headers: _headers,
344
+ parameters: body.to_json
345
+ )
346
+ OAuth2.apply(config, _request)
347
+ _response = execute_request(_request)
348
+
349
+ # Return appropriate response type.
350
+ decoded = APIHelper.json_deserialize(_response.raw_body)
351
+ _errors = APIHelper.map_response(decoded, ['errors'])
352
+ ApiResponse.new(
353
+ _response, data: decoded, errors: _errors
354
+ )
355
+ end
356
+
357
+ # Schedules a `RESUME` action to resume a paused or a deactivated
358
+ # subscription.
264
359
  # @param [String] subscription_id Required parameter: The ID of the
265
360
  # subscription to resume.
361
+ # @param [ResumeSubscriptionRequest] body Required parameter: An object
362
+ # containing the fields to POST for the request. See the corresponding
363
+ # object definition for field details.
266
364
  # @return [ResumeSubscriptionResponse Hash] response from the API call
267
- def resume_subscription(subscription_id:)
365
+ def resume_subscription(subscription_id:,
366
+ body:)
268
367
  # Prepare query url.
269
368
  _query_builder = config.get_base_uri
270
369
  _query_builder << '/v2/subscriptions/{subscription_id}/resume'
@@ -276,13 +375,57 @@ module Square
276
375
 
277
376
  # Prepare headers.
278
377
  _headers = {
279
- 'accept' => 'application/json'
378
+ 'accept' => 'application/json',
379
+ 'Content-Type' => 'application/json'
280
380
  }
281
381
 
282
382
  # Prepare and execute HttpRequest.
283
383
  _request = config.http_client.post(
284
384
  _query_url,
285
- headers: _headers
385
+ headers: _headers,
386
+ parameters: body.to_json
387
+ )
388
+ OAuth2.apply(config, _request)
389
+ _response = execute_request(_request)
390
+
391
+ # Return appropriate response type.
392
+ decoded = APIHelper.json_deserialize(_response.raw_body)
393
+ _errors = APIHelper.map_response(decoded, ['errors'])
394
+ ApiResponse.new(
395
+ _response, data: decoded, errors: _errors
396
+ )
397
+ end
398
+
399
+ # Schedules a `SWAP_PLAN` action to swap a subscription plan in an existing
400
+ # subscription.
401
+ # @param [String] subscription_id Required parameter: The ID of the
402
+ # subscription to swap the subscription plan for.
403
+ # @param [SwapPlanRequest] body Required parameter: An object containing the
404
+ # fields to POST for the request. See the corresponding object definition
405
+ # for field details.
406
+ # @return [SwapPlanResponse Hash] response from the API call
407
+ def swap_plan(subscription_id:,
408
+ body:)
409
+ # Prepare query url.
410
+ _query_builder = config.get_base_uri
411
+ _query_builder << '/v2/subscriptions/{subscription_id}/swap-plan'
412
+ _query_builder = APIHelper.append_url_with_template_parameters(
413
+ _query_builder,
414
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
415
+ )
416
+ _query_url = APIHelper.clean_url _query_builder
417
+
418
+ # Prepare headers.
419
+ _headers = {
420
+ 'accept' => 'application/json',
421
+ 'Content-Type' => 'application/json'
422
+ }
423
+
424
+ # Prepare and execute HttpRequest.
425
+ _request = config.http_client.post(
426
+ _query_url,
427
+ headers: _headers,
428
+ parameters: body.to_json
286
429
  )
287
430
  OAuth2.apply(config, _request)
288
431
  _response = execute_request(_request)
@@ -26,7 +26,7 @@ module Square
26
26
  # Prepare headers.
27
27
  _headers = {
28
28
  'accept' => 'application/json',
29
- 'content-type' => 'application/json; charset=utf-8'
29
+ 'Content-Type' => 'application/json'
30
30
  }
31
31
 
32
32
  # Prepare and execute HttpRequest.
@@ -69,7 +69,7 @@ module Square
69
69
  # Prepare headers.
70
70
  _headers = {
71
71
  'accept' => 'application/json',
72
- 'content-type' => 'application/json; charset=utf-8'
72
+ 'Content-Type' => 'application/json'
73
73
  }
74
74
 
75
75
  # Prepare and execute HttpRequest.
@@ -112,7 +112,7 @@ module Square
112
112
  # Prepare headers.
113
113
  _headers = {
114
114
  'accept' => 'application/json',
115
- 'content-type' => 'application/json; charset=utf-8'
115
+ 'Content-Type' => 'application/json'
116
116
  }
117
117
 
118
118
  # Prepare and execute HttpRequest.
@@ -149,7 +149,7 @@ module Square
149
149
  # Prepare headers.
150
150
  _headers = {
151
151
  'accept' => 'application/json',
152
- 'content-type' => 'application/json; charset=utf-8'
152
+ 'Content-Type' => 'application/json'
153
153
  }
154
154
 
155
155
  # Prepare and execute HttpRequest.
@@ -232,7 +232,7 @@ module Square
232
232
  # Prepare headers.
233
233
  _headers = {
234
234
  'accept' => 'application/json',
235
- 'content-type' => 'application/json; charset=utf-8'
235
+ 'Content-Type' => 'application/json'
236
236
  }
237
237
 
238
238
  # Prepare and execute HttpRequest.
@@ -319,7 +319,7 @@ module Square
319
319
  # Prepare headers.
320
320
  _headers = {
321
321
  'accept' => 'application/json',
322
- 'content-type' => 'application/json; charset=utf-8'
322
+ 'Content-Type' => 'application/json'
323
323
  }
324
324
 
325
325
  # Prepare and execute HttpRequest.
@@ -21,7 +21,7 @@ module Square
21
21
  # Prepare headers.
22
22
  _headers = {
23
23
  'accept' => 'application/json',
24
- 'content-type' => 'application/json; charset=utf-8'
24
+ 'Content-Type' => 'application/json'
25
25
  }
26
26
 
27
27
  # Prepare and execute HttpRequest.
@@ -56,7 +56,7 @@ module Square
56
56
  # Prepare headers.
57
57
  _headers = {
58
58
  'accept' => 'application/json',
59
- 'content-type' => 'application/json; charset=utf-8'
59
+ 'Content-Type' => 'application/json'
60
60
  }
61
61
 
62
62
  # Prepare and execute HttpRequest.
@@ -162,7 +162,7 @@ module Square
162
162
  # Prepare headers.
163
163
  _headers = {
164
164
  'accept' => 'application/json',
165
- 'content-type' => 'application/json; charset=utf-8'
165
+ 'Content-Type' => 'application/json'
166
166
  }
167
167
 
168
168
  # Prepare and execute HttpRequest.
@@ -197,7 +197,7 @@ module Square
197
197
  # Prepare headers.
198
198
  _headers = {
199
199
  'accept' => 'application/json',
200
- 'content-type' => 'application/json; charset=utf-8'
200
+ 'Content-Type' => 'application/json'
201
201
  }
202
202
 
203
203
  # Prepare and execute HttpRequest.
@@ -127,7 +127,7 @@ module Square
127
127
  # Prepare headers.
128
128
  _headers = {
129
129
  'accept' => 'application/json',
130
- 'content-type' => 'application/json; charset=utf-8'
130
+ 'Content-Type' => 'application/json'
131
131
  }
132
132
 
133
133
  # Prepare and execute HttpRequest.
@@ -369,7 +369,7 @@ module Square
369
369
  # Prepare headers.
370
370
  _headers = {
371
371
  'accept' => 'application/json',
372
- 'content-type' => 'application/json; charset=utf-8'
372
+ 'Content-Type' => 'application/json'
373
373
  }
374
374
 
375
375
  # Prepare and execute HttpRequest.
data/lib/square/client.rb CHANGED
@@ -4,13 +4,17 @@ module Square
4
4
  attr_reader :config
5
5
 
6
6
  def sdk_version
7
- '15.0.0.20211020'
7
+ '17.1.0.20220120'
8
8
  end
9
9
 
10
10
  def square_version
11
11
  config.square_version
12
12
  end
13
13
 
14
+ def user_agent_detail
15
+ config.user_agent_detail
16
+ end
17
+
14
18
  # Access to mobile_authorization controller.
15
19
  # @return [MobileAuthorizationApi] Returns the controller instance.
16
20
  def mobile_authorization
@@ -214,8 +218,8 @@ module Square
214
218
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
215
219
  retry_methods: %i[get put], environment: 'production',
216
220
  custom_url: 'https://connect.squareup.com',
217
- square_version: '2021-10-20', access_token: '',
218
- additional_headers: {}, config: nil)
221
+ square_version: '2022-01-20', access_token: '',
222
+ user_agent_detail: '', additional_headers: {}, config: nil)
219
223
  @config = if config.nil?
220
224
  Configuration.new(http_client_instance: http_client_instance,
221
225
  timeout: timeout, max_retries: max_retries,
@@ -227,6 +231,7 @@ module Square
227
231
  custom_url: custom_url,
228
232
  square_version: square_version,
229
233
  access_token: access_token,
234
+ user_agent_detail: user_agent_detail,
230
235
  additional_headers: additional_headers)
231
236
  else
232
237
  config
@@ -5,7 +5,7 @@ module Square
5
5
  # The attribute readers for properties.
6
6
  attr_reader :http_client, :http_client_instance, :timeout, :max_retries, :retry_interval,
7
7
  :backoff_factor, :retry_statuses, :retry_methods, :environment, :custom_url,
8
- :square_version, :access_token
8
+ :square_version, :access_token, :user_agent_detail
9
9
 
10
10
  def additional_headers
11
11
  @additional_headers.clone
@@ -20,8 +20,8 @@ module Square
20
20
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
21
21
  retry_methods: %i[get put], environment: 'production',
22
22
  custom_url: 'https://connect.squareup.com',
23
- square_version: '2021-10-20', access_token: '',
24
- additional_headers: {})
23
+ square_version: '2022-01-20', access_token: '',
24
+ user_agent_detail: '', additional_headers: {})
25
25
  # The Http Client passed from the sdk user for making requests
26
26
  @http_client_instance = http_client_instance
27
27
 
@@ -61,13 +61,16 @@ module Square
61
61
 
62
62
  # The Http Client to use for making requests.
63
63
  @http_client = create_http_client
64
+
65
+ # User agent detail, to be appended with user-agent header.
66
+ @user_agent_detail = get_user_agent(user_agent_detail)
64
67
  end
65
68
 
66
69
  def clone_with(http_client_instance: nil, timeout: nil, max_retries: nil,
67
70
  retry_interval: nil, backoff_factor: nil,
68
71
  retry_statuses: nil, retry_methods: nil, environment: nil,
69
72
  custom_url: nil, square_version: nil, access_token: nil,
70
- additional_headers: nil)
73
+ user_agent_detail: nil, additional_headers: nil)
71
74
  http_client_instance ||= self.http_client_instance
72
75
  timeout ||= self.timeout
73
76
  max_retries ||= self.max_retries
@@ -79,6 +82,7 @@ module Square
79
82
  custom_url ||= self.custom_url
80
83
  square_version ||= self.square_version
81
84
  access_token ||= self.access_token
85
+ user_agent_detail ||= self.user_agent_detail
82
86
  additional_headers ||= self.additional_headers
83
87
 
84
88
  Configuration.new(http_client_instance: http_client_instance,
@@ -89,6 +93,7 @@ module Square
89
93
  retry_methods: retry_methods, environment: environment,
90
94
  custom_url: custom_url, square_version: square_version,
91
95
  access_token: access_token,
96
+ user_agent_detail: user_agent_detail,
92
97
  additional_headers: additional_headers)
93
98
  end
94
99
 
@@ -101,6 +106,12 @@ module Square
101
106
  http_client_instance: http_client_instance)
102
107
  end
103
108
 
109
+ def get_user_agent(user_agent_detail)
110
+ raise ArgumentError, 'The length of user-agent detail should not exceed 128 characters.' unless user_agent_detail.length < 128
111
+
112
+ user_agent_detail
113
+ end
114
+
104
115
  # All the environments the SDK can run in.
105
116
  ENVIRONMENTS = {
106
117
  'production' => {
@@ -7,11 +7,8 @@ class LocationsApiTests < ApiTestBase
7
7
  @controller = LocationsApi.new CONFIG, http_call_back: @response_catcher
8
8
  end
9
9
 
10
- # Provides information of all locations of a business.
11
- #
12
- #Many Square API endpoints require a `location_id` parameter.
13
- #The `id` field of the [`Location`]($m/Location) objects returned by this
14
- #endpoint correspond to that `location_id` parameter.
10
+ # Provides details about all of the seller's [locations](https://developer.squareup.com/docs/locations-api),
11
+ #including those with an inactive status.
15
12
  def test_list_locations()
16
13
 
17
14
  # Perform the API call through the SDK function
data/test/test_helper.rb CHANGED
@@ -82,7 +82,7 @@ class TestHelper
82
82
  unless @cache.keys.include? url
83
83
  @cache[url] = Tempfile.new('APIMatic')
84
84
  @cache[url].binmode
85
- @cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
85
+ @cache[url].write(URI.open(url, {ssl_ca_cert: Certifi.where}).read)
86
86
  end
87
87
  return @cache[url].path
88
88
  end
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: 15.0.0.20211020
4
+ version: 17.1.0.20220120
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: 2021-10-20 00:00:00.000000000 Z
11
+ date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -209,9 +209,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
209
  - - ">="
210
210
  - !ruby/object:Gem::Version
211
211
  version: '2.5'
212
- - - "<"
213
- - !ruby/object:Gem::Version
214
- version: '3.0'
215
212
  required_rubygems_version: !ruby/object:Gem::Requirement
216
213
  requirements:
217
214
  - - ">="