square.rb 6.1.0.20200722 → 6.2.0.20200812

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 274c6809492acf86fd49adee12a1ccc2045d394dfff9612914de1bc010eeb1cb
4
- data.tar.gz: 99e6be9ca77af585b64213a3e607ac36f935182bbf9dc8529546548f37d2023c
3
+ metadata.gz: 491aaaccfa43e7c8d9d17a2d48624c28207bbea80dc75359d525b3d4cd64b0cf
4
+ data.tar.gz: 645d97dc4dcef2655903ad1f89dee5e361c6b072794bf2920d83fe66dfae1723
5
5
  SHA512:
6
- metadata.gz: c13b32a0109ebd31d40394547775814ddb2aed9f50141b1cd36e3339d2c5e9b43d6f9cce2e0c3cc7775ad69034d3f0908c78c873d930f7d6cd7bfe4a20888e6c
7
- data.tar.gz: eb897df878e5f4d861405c2580fb581ad28ce11e3d6ae467b193bc68822d88161238a111022c94d93d67c052c9321e90874550838723840de664313f02121003
6
+ metadata.gz: 41bc326ab367dae322de2187a0fb3d509384f5af88787e75ab37db42db1263833f65fd0bf39e48ecd60d437970752eb5380cba65eeee02a113c39ae48692e74d
7
+ data.tar.gz: d2f6cd63f7a4475ae78c64a980831c4f3b2b23ca8e657deb6dc737b188906987f2b67a21966ed74f7001c25553d5590b1a619c923713f25e9000d199f6196e21
data/README.md CHANGED
@@ -38,6 +38,9 @@ gem 'square.rb'
38
38
  ### Orders
39
39
  * [Orders]
40
40
 
41
+ ### Subscriptions
42
+ * [Subscriptions]
43
+
41
44
  ### Invoices
42
45
  * [Invoices]
43
46
 
@@ -312,4 +315,5 @@ You can also use the Square API to create applications or services that work wit
312
315
  [V1 Employees]: doc/v1-employees.md
313
316
  [V1 Transactions]: doc/v1-transactions.md
314
317
  [V1 Items]: doc/v1-items.md
315
- [Transactions]: doc/transactions.md
318
+ [Transactions]: doc/transactions.md
319
+ [Subscriptions]: doc/subscriptions.md
@@ -57,5 +57,6 @@ require_relative 'square/api/loyalty_api.rb'
57
57
  require_relative 'square/api/merchants_api.rb'
58
58
  require_relative 'square/api/payments_api.rb'
59
59
  require_relative 'square/api/refunds_api.rb'
60
+ require_relative 'square/api/subscriptions_api.rb'
60
61
  require_relative 'square/api/team_api.rb'
61
62
  require_relative 'square/api/terminal_api.rb'
@@ -8,7 +8,7 @@ module Square
8
8
  @http_call_back = http_call_back
9
9
 
10
10
  @global_headers = {
11
- 'user-agent' => 'Square-Ruby-SDK/6.1.0.20200722',
11
+ 'user-agent' => 'Square-Ruby-SDK/6.2.0.20200812',
12
12
  'Square-Version' => config.square_version
13
13
  }
14
14
  end
@@ -0,0 +1,262 @@
1
+ module Square
2
+ # SubscriptionsApi
3
+ class SubscriptionsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Creates a subscription for a customer to a subscription plan.
9
+ # If you provide a card on file in the request, Square charges the card for
10
+ # the subscription. Otherwise, Square bills an invoice to the customer's
11
+ # email
12
+ # address. The subscription starts immediately, unless the request includes
13
+ # the optional `start_date`. Each individual subscription is associated with
14
+ # a particular location.
15
+ # For more information,
16
+ # see [Subscription API
17
+ # Overview](https://developer.squareup.com/docs/docs/subscriptions-api/overv
18
+ # iew).
19
+ # @param [CreateSubscriptionRequest] body Required parameter: An object
20
+ # containing the fields to POST for the request. See the corresponding
21
+ # object definition for field details.
22
+ # @return [CreateSubscriptionResponse Hash] response from the API call
23
+ def create_subscription(body:)
24
+ # Prepare query url.
25
+ _query_builder = config.get_base_uri
26
+ _query_builder << '/v2/subscriptions'
27
+ _query_url = APIHelper.clean_url _query_builder
28
+
29
+ # Prepare headers.
30
+ _headers = {
31
+ 'accept' => 'application/json',
32
+ 'content-type' => 'application/json; charset=utf-8'
33
+ }
34
+
35
+ # Prepare and execute HttpRequest.
36
+ _request = config.http_client.post(
37
+ _query_url,
38
+ headers: _headers,
39
+ parameters: body.to_json
40
+ )
41
+ OAuth2.apply(config, _request)
42
+ _response = execute_request(_request)
43
+
44
+ # Return appropriate response type.
45
+ decoded = APIHelper.json_deserialize(_response.raw_body)
46
+ _errors = APIHelper.map_response(decoded, ['errors'])
47
+ ApiResponse.new(_response, data: decoded, errors: _errors)
48
+ end
49
+
50
+ # Searches for subscriptions.
51
+ # Results are ordered chronologically by subscription creation date. If
52
+ # the request specifies more than one location ID,
53
+ # the endpoint orders the result
54
+ # by location ID, and then by creation date within each location. If no
55
+ # locations are given
56
+ # in the query, all locations are searched.
57
+ # You can also optionally specify `customer_ids` to search by customer.
58
+ # If left unset, all customers
59
+ # associated with the specified locations are returned.
60
+ # If the request specifies customer IDs, the endpoint orders results
61
+ # first by location, within location by customer ID, and within
62
+ # customer by subscription creation date.
63
+ # For more information, see
64
+ # [Retrieve
65
+ # subscriptions](https://developer.squareup.com/docs/docs/subscriptions-api/
66
+ # overview#retrieve-subscriptions).
67
+ # @param [SearchSubscriptionsRequest] body Required parameter: An object
68
+ # containing the fields to POST for the request. See the corresponding
69
+ # object definition for field details.
70
+ # @return [SearchSubscriptionsResponse Hash] response from the API call
71
+ def search_subscriptions(body:)
72
+ # Prepare query url.
73
+ _query_builder = config.get_base_uri
74
+ _query_builder << '/v2/subscriptions/search'
75
+ _query_url = APIHelper.clean_url _query_builder
76
+
77
+ # Prepare headers.
78
+ _headers = {
79
+ 'accept' => 'application/json',
80
+ 'content-type' => 'application/json; charset=utf-8'
81
+ }
82
+
83
+ # Prepare and execute HttpRequest.
84
+ _request = config.http_client.post(
85
+ _query_url,
86
+ headers: _headers,
87
+ parameters: body.to_json
88
+ )
89
+ OAuth2.apply(config, _request)
90
+ _response = execute_request(_request)
91
+
92
+ # Return appropriate response type.
93
+ decoded = APIHelper.json_deserialize(_response.raw_body)
94
+ _errors = APIHelper.map_response(decoded, ['errors'])
95
+ ApiResponse.new(_response, data: decoded, errors: _errors)
96
+ end
97
+
98
+ # Retrieves a subscription.
99
+ # @param [String] subscription_id Required parameter: The ID of the
100
+ # subscription to retrieve.
101
+ # @return [RetrieveSubscriptionResponse Hash] response from the API call
102
+ def retrieve_subscription(subscription_id:)
103
+ # Prepare query url.
104
+ _query_builder = config.get_base_uri
105
+ _query_builder << '/v2/subscriptions/{subscription_id}'
106
+ _query_builder = APIHelper.append_url_with_template_parameters(
107
+ _query_builder,
108
+ 'subscription_id' => subscription_id
109
+ )
110
+ _query_url = APIHelper.clean_url _query_builder
111
+
112
+ # Prepare headers.
113
+ _headers = {
114
+ 'accept' => 'application/json'
115
+ }
116
+
117
+ # Prepare and execute HttpRequest.
118
+ _request = config.http_client.get(
119
+ _query_url,
120
+ headers: _headers
121
+ )
122
+ OAuth2.apply(config, _request)
123
+ _response = execute_request(_request)
124
+
125
+ # Return appropriate response type.
126
+ decoded = APIHelper.json_deserialize(_response.raw_body)
127
+ _errors = APIHelper.map_response(decoded, ['errors'])
128
+ ApiResponse.new(_response, data: decoded, errors: _errors)
129
+ end
130
+
131
+ # Updates a subscription. You can set, modify, and clear the
132
+ # `subscription` field values. For more information and examples, see
133
+ # [Update
134
+ # subscriptions](https://developer.squareup.com/docs/docs/subscriptions-api/
135
+ # overview#update-subscriptions).
136
+ # @param [String] subscription_id Required parameter: The ID for the
137
+ # subscription to update.
138
+ # @param [UpdateSubscriptionRequest] body Required parameter: An object
139
+ # containing the fields to POST for the request. See the corresponding
140
+ # object definition for field details.
141
+ # @return [UpdateSubscriptionResponse Hash] response from the API call
142
+ def update_subscription(subscription_id:,
143
+ body:)
144
+ # Prepare query url.
145
+ _query_builder = config.get_base_uri
146
+ _query_builder << '/v2/subscriptions/{subscription_id}'
147
+ _query_builder = APIHelper.append_url_with_template_parameters(
148
+ _query_builder,
149
+ 'subscription_id' => subscription_id
150
+ )
151
+ _query_url = APIHelper.clean_url _query_builder
152
+
153
+ # Prepare headers.
154
+ _headers = {
155
+ 'accept' => 'application/json',
156
+ 'content-type' => 'application/json; charset=utf-8'
157
+ }
158
+
159
+ # Prepare and execute HttpRequest.
160
+ _request = config.http_client.put(
161
+ _query_url,
162
+ headers: _headers,
163
+ parameters: body.to_json
164
+ )
165
+ OAuth2.apply(config, _request)
166
+ _response = execute_request(_request)
167
+
168
+ # Return appropriate response type.
169
+ decoded = APIHelper.json_deserialize(_response.raw_body)
170
+ _errors = APIHelper.map_response(decoded, ['errors'])
171
+ ApiResponse.new(_response, data: decoded, errors: _errors)
172
+ end
173
+
174
+ # Cancels a subscription immediately and sets the subscription
175
+ # `status` to `CANCELED`. You can also use the `UpdateSubscription`
176
+ # endpoint to cancel a subscription at a future date. For more
177
+ # information, see
178
+ # [CancelSubscriptions](https://developer.squareup.com/docs/docs/subscriptio
179
+ # ns-api/overview#cancel-subscriptions).
180
+ # @param [String] subscription_id Required parameter: The ID of the
181
+ # subscription to cancel.
182
+ # @return [CancelSubscriptionResponse Hash] response from the API call
183
+ def cancel_subscription(subscription_id:)
184
+ # Prepare query url.
185
+ _query_builder = config.get_base_uri
186
+ _query_builder << '/v2/subscriptions/{subscription_id}/cancel'
187
+ _query_builder = APIHelper.append_url_with_template_parameters(
188
+ _query_builder,
189
+ 'subscription_id' => subscription_id
190
+ )
191
+ _query_url = APIHelper.clean_url _query_builder
192
+
193
+ # Prepare headers.
194
+ _headers = {
195
+ 'accept' => 'application/json'
196
+ }
197
+
198
+ # Prepare and execute HttpRequest.
199
+ _request = config.http_client.post(
200
+ _query_url,
201
+ headers: _headers
202
+ )
203
+ OAuth2.apply(config, _request)
204
+ _response = execute_request(_request)
205
+
206
+ # Return appropriate response type.
207
+ decoded = APIHelper.json_deserialize(_response.raw_body)
208
+ _errors = APIHelper.map_response(decoded, ['errors'])
209
+ ApiResponse.new(_response, data: decoded, errors: _errors)
210
+ end
211
+
212
+ # Lists all events for a specific subscription.
213
+ # In the current implementation, only `START_SUBSCRIPTION` and
214
+ # `STOP_SUBSCRIPTION` (when the subscription was canceled) events are
215
+ # returned.
216
+ # @param [String] subscription_id Required parameter: The ID of the
217
+ # subscription to retrieve the events for.
218
+ # @param [String] cursor Optional parameter: A pagination cursor returned by
219
+ # a previous call to this endpoint. Provide this to retrieve the next set of
220
+ # results for the original query. For more information, see
221
+ # [Pagination](https://developer.squareup.com/docs/docs/working-with-apis/pa
222
+ # gination).
223
+ # @param [Integer] limit Optional parameter: The upper limit on the number
224
+ # of subscription events to return in the response. Default: `200`
225
+ # @return [ListSubscriptionEventsResponse Hash] response from the API call
226
+ def list_subscription_events(subscription_id:,
227
+ cursor: nil,
228
+ limit: nil)
229
+ # Prepare query url.
230
+ _query_builder = config.get_base_uri
231
+ _query_builder << '/v2/subscriptions/{subscription_id}/events'
232
+ _query_builder = APIHelper.append_url_with_template_parameters(
233
+ _query_builder,
234
+ 'subscription_id' => subscription_id
235
+ )
236
+ _query_builder = APIHelper.append_url_with_query_parameters(
237
+ _query_builder,
238
+ 'cursor' => cursor,
239
+ 'limit' => limit
240
+ )
241
+ _query_url = APIHelper.clean_url _query_builder
242
+
243
+ # Prepare headers.
244
+ _headers = {
245
+ 'accept' => 'application/json'
246
+ }
247
+
248
+ # Prepare and execute HttpRequest.
249
+ _request = config.http_client.get(
250
+ _query_url,
251
+ headers: _headers
252
+ )
253
+ OAuth2.apply(config, _request)
254
+ _response = execute_request(_request)
255
+
256
+ # Return appropriate response type.
257
+ decoded = APIHelper.json_deserialize(_response.raw_body)
258
+ _errors = APIHelper.map_response(decoded, ['errors'])
259
+ ApiResponse.new(_response, data: decoded, errors: _errors)
260
+ end
261
+ end
262
+ end
@@ -4,7 +4,7 @@ module Square
4
4
  attr_reader :config
5
5
 
6
6
  def sdk_version
7
- '6.1.0.20200722'
7
+ '6.2.0.20200812'
8
8
  end
9
9
 
10
10
  def square_version
@@ -179,6 +179,12 @@ module Square
179
179
  @refunds ||= RefundsApi.new config
180
180
  end
181
181
 
182
+ # Access to subscriptions controller.
183
+ # @return [SubscriptionsApi] Returns the controller instance.
184
+ def subscriptions
185
+ @subscriptions ||= SubscriptionsApi.new config
186
+ end
187
+
182
188
  # Access to team controller.
183
189
  # @return [TeamApi] Returns the controller instance.
184
190
  def team
@@ -193,7 +199,7 @@ module Square
193
199
 
194
200
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
195
201
  backoff_factor: 1, environment: 'production',
196
- square_version: '2020-07-22', access_token: 'TODO: Replace',
202
+ square_version: '2020-08-12', access_token: 'TODO: Replace',
197
203
  additional_headers: {}, config: nil)
198
204
  @config = if config.nil?
199
205
  Configuration.new(timeout: timeout, max_retries: max_retries,
@@ -22,7 +22,7 @@ module Square
22
22
 
23
23
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
24
24
  backoff_factor: 1, environment: 'production',
25
- square_version: '2020-07-22', access_token: 'TODO: Replace',
25
+ square_version: '2020-08-12', access_token: 'TODO: Replace',
26
26
  additional_headers: {})
27
27
  # The value to use for connection timeout
28
28
  @timeout = timeout
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: 6.1.0.20200722
4
+ version: 6.2.0.20200812
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-07-22 00:00:00.000000000 Z
11
+ date: 2020-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -142,6 +142,7 @@ files:
142
142
  - lib/square/api/payments_api.rb
143
143
  - lib/square/api/refunds_api.rb
144
144
  - lib/square/api/reporting_api.rb
145
+ - lib/square/api/subscriptions_api.rb
145
146
  - lib/square/api/team_api.rb
146
147
  - lib/square/api/terminal_api.rb
147
148
  - lib/square/api/transactions_api.rb