square.rb 8.0.0.20201216 → 26.1.0.20230119

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +79 -221
  4. data/lib/square/api/apple_pay_api.rb +15 -8
  5. data/lib/square/api/bank_accounts_api.rb +5 -5
  6. data/lib/square/api/base_api.rb +27 -9
  7. data/lib/square/api/booking_custom_attributes_api.rb +555 -0
  8. data/lib/square/api/bookings_api.rb +107 -15
  9. data/lib/square/api/cards_api.rb +171 -0
  10. data/lib/square/api/cash_drawers_api.rb +2 -2
  11. data/lib/square/api/catalog_api.rb +167 -73
  12. data/lib/square/api/checkout_api.rb +205 -3
  13. data/lib/square/api/customer_custom_attributes_api.rb +561 -0
  14. data/lib/square/api/customer_groups_api.rb +17 -8
  15. data/lib/square/api/customer_segments_api.rb +15 -6
  16. data/lib/square/api/customers_api.rb +67 -33
  17. data/lib/square/api/devices_api.rb +3 -2
  18. data/lib/square/api/disputes_api.rb +109 -105
  19. data/lib/square/api/gift_card_activities_api.rb +132 -0
  20. data/lib/square/api/gift_cards_api.rb +298 -0
  21. data/lib/square/api/inventory_api.rb +263 -24
  22. data/lib/square/api/invoices_api.rb +21 -21
  23. data/lib/square/api/labor_api.rb +70 -68
  24. data/lib/square/api/location_custom_attributes_api.rb +584 -0
  25. data/lib/square/api/locations_api.rb +21 -14
  26. data/lib/square/api/loyalty_api.rb +333 -50
  27. data/lib/square/api/merchants_api.rb +11 -9
  28. data/lib/square/api/mobile_authorization_api.rb +4 -4
  29. data/lib/square/api/o_auth_api.rb +78 -25
  30. data/lib/square/api/order_custom_attributes_api.rb +601 -0
  31. data/lib/square/api/orders_api.rb +84 -45
  32. data/lib/square/api/payments_api.rb +72 -24
  33. data/lib/square/api/payouts_api.rb +173 -0
  34. data/lib/square/api/refunds_api.rb +18 -7
  35. data/lib/square/api/sites_api.rb +43 -0
  36. data/lib/square/api/snippets_api.rb +146 -0
  37. data/lib/square/api/subscriptions_api.rb +190 -15
  38. data/lib/square/api/team_api.rb +46 -46
  39. data/lib/square/api/terminal_api.rb +172 -22
  40. data/lib/square/api/transactions_api.rb +15 -191
  41. data/lib/square/api/v1_transactions_api.rb +52 -124
  42. data/lib/square/api/vendors_api.rb +257 -0
  43. data/lib/square/api/webhook_subscriptions_api.rb +327 -0
  44. data/lib/square/api_helper.rb +217 -57
  45. data/lib/square/client.rb +90 -18
  46. data/lib/square/configuration.rb +64 -20
  47. data/lib/square/exceptions/validation_exception.rb +13 -0
  48. data/lib/square/http/api_response.rb +7 -9
  49. data/lib/square/http/faraday_client.rb +40 -9
  50. data/lib/square/http/http_client.rb +31 -12
  51. data/lib/square/http/http_request.rb +6 -2
  52. data/lib/square/utilities/date_time_helper.rb +151 -0
  53. data/lib/square/utilities/file_wrapper.rb +1 -2
  54. data/lib/square.rb +56 -44
  55. data/test/api/test_locations_api.rb +2 -5
  56. data/test/test_helper.rb +2 -2
  57. metadata +83 -15
  58. data/lib/square/api/v1_employees_api.rb +0 -751
  59. data/lib/square/api/v1_items_api.rb +0 -1766
@@ -0,0 +1,327 @@
1
+ module Square
2
+ # WebhookSubscriptionsApi
3
+ class WebhookSubscriptionsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Lists all webhook event types that can be subscribed to.
9
+ # @param [String] api_version Optional parameter: The API version for which
10
+ # to list event types. Setting this field overrides the default version used
11
+ # by the application.
12
+ # @return [ListWebhookEventTypesResponse Hash] response from the API call
13
+ def list_webhook_event_types(api_version: nil)
14
+ # Prepare query url.
15
+ _query_builder = config.get_base_uri
16
+ _query_builder << '/v2/webhooks/event-types'
17
+ _query_builder = APIHelper.append_url_with_query_parameters(
18
+ _query_builder,
19
+ 'api_version' => api_version
20
+ )
21
+ _query_url = APIHelper.clean_url _query_builder
22
+
23
+ # Prepare headers.
24
+ _headers = {
25
+ 'accept' => 'application/json'
26
+ }
27
+
28
+ # Prepare and execute HttpRequest.
29
+ _request = config.http_client.get(
30
+ _query_url,
31
+ headers: _headers
32
+ )
33
+ OAuth2.apply(config, _request)
34
+ _response = execute_request(_request)
35
+
36
+ # Return appropriate response type.
37
+ decoded = APIHelper.json_deserialize(_response.raw_body)
38
+ _errors = APIHelper.map_response(decoded, ['errors'])
39
+ ApiResponse.new(
40
+ _response, data: decoded, errors: _errors
41
+ )
42
+ end
43
+
44
+ # Lists all webhook subscriptions owned by your application.
45
+ # @param [String] cursor Optional parameter: A pagination cursor returned by
46
+ # a previous call to this endpoint. Provide this to retrieve the next set of
47
+ # results for your original query. For more information, see
48
+ # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
49
+ # .
50
+ # @param [TrueClass|FalseClass] include_disabled Optional parameter:
51
+ # Includes disabled [Subscription]($m/WebhookSubscription)s. By default, all
52
+ # enabled [Subscription]($m/WebhookSubscription)s are returned.
53
+ # @param [SortOrder] sort_order Optional parameter: Sorts the returned list
54
+ # by when the [Subscription]($m/WebhookSubscription) was created with the
55
+ # specified order. This field defaults to ASC.
56
+ # @param [Integer] limit Optional parameter: The maximum number of results
57
+ # to be returned in a single page. It is possible to receive fewer results
58
+ # than the specified limit on a given page. The default value of 100 is also
59
+ # the maximum allowed value. Default: 100
60
+ # @return [ListWebhookSubscriptionsResponse Hash] response from the API call
61
+ def list_webhook_subscriptions(cursor: nil,
62
+ include_disabled: false,
63
+ sort_order: nil,
64
+ limit: nil)
65
+ # Prepare query url.
66
+ _query_builder = config.get_base_uri
67
+ _query_builder << '/v2/webhooks/subscriptions'
68
+ _query_builder = APIHelper.append_url_with_query_parameters(
69
+ _query_builder,
70
+ 'cursor' => cursor,
71
+ 'include_disabled' => include_disabled,
72
+ 'sort_order' => sort_order,
73
+ 'limit' => limit
74
+ )
75
+ _query_url = APIHelper.clean_url _query_builder
76
+
77
+ # Prepare headers.
78
+ _headers = {
79
+ 'accept' => 'application/json'
80
+ }
81
+
82
+ # Prepare and execute HttpRequest.
83
+ _request = config.http_client.get(
84
+ _query_url,
85
+ headers: _headers
86
+ )
87
+ OAuth2.apply(config, _request)
88
+ _response = execute_request(_request)
89
+
90
+ # Return appropriate response type.
91
+ decoded = APIHelper.json_deserialize(_response.raw_body)
92
+ _errors = APIHelper.map_response(decoded, ['errors'])
93
+ ApiResponse.new(
94
+ _response, data: decoded, errors: _errors
95
+ )
96
+ end
97
+
98
+ # Creates a webhook subscription.
99
+ # @param [CreateWebhookSubscriptionRequest] body Required parameter: An
100
+ # object containing the fields to POST for the request. See the
101
+ # corresponding object definition for field details.
102
+ # @return [CreateWebhookSubscriptionResponse Hash] response from the API call
103
+ def create_webhook_subscription(body:)
104
+ # Prepare query url.
105
+ _query_builder = config.get_base_uri
106
+ _query_builder << '/v2/webhooks/subscriptions'
107
+ _query_url = APIHelper.clean_url _query_builder
108
+
109
+ # Prepare headers.
110
+ _headers = {
111
+ 'accept' => 'application/json',
112
+ 'Content-Type' => 'application/json'
113
+ }
114
+
115
+ # Prepare and execute HttpRequest.
116
+ _request = config.http_client.post(
117
+ _query_url,
118
+ headers: _headers,
119
+ parameters: body.to_json
120
+ )
121
+ OAuth2.apply(config, _request)
122
+ _response = execute_request(_request)
123
+
124
+ # Return appropriate response type.
125
+ decoded = APIHelper.json_deserialize(_response.raw_body)
126
+ _errors = APIHelper.map_response(decoded, ['errors'])
127
+ ApiResponse.new(
128
+ _response, data: decoded, errors: _errors
129
+ )
130
+ end
131
+
132
+ # Deletes a webhook subscription.
133
+ # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
134
+ # the [Subscription]($m/WebhookSubscription) to delete.
135
+ # @return [DeleteWebhookSubscriptionResponse Hash] response from the API call
136
+ def delete_webhook_subscription(subscription_id:)
137
+ # Prepare query url.
138
+ _query_builder = config.get_base_uri
139
+ _query_builder << '/v2/webhooks/subscriptions/{subscription_id}'
140
+ _query_builder = APIHelper.append_url_with_template_parameters(
141
+ _query_builder,
142
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
143
+ )
144
+ _query_url = APIHelper.clean_url _query_builder
145
+
146
+ # Prepare headers.
147
+ _headers = {
148
+ 'accept' => 'application/json'
149
+ }
150
+
151
+ # Prepare and execute HttpRequest.
152
+ _request = config.http_client.delete(
153
+ _query_url,
154
+ headers: _headers
155
+ )
156
+ OAuth2.apply(config, _request)
157
+ _response = execute_request(_request)
158
+
159
+ # Return appropriate response type.
160
+ decoded = APIHelper.json_deserialize(_response.raw_body)
161
+ _errors = APIHelper.map_response(decoded, ['errors'])
162
+ ApiResponse.new(
163
+ _response, data: decoded, errors: _errors
164
+ )
165
+ end
166
+
167
+ # Retrieves a webhook subscription identified by its ID.
168
+ # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
169
+ # the [Subscription]($m/WebhookSubscription) to retrieve.
170
+ # @return [RetrieveWebhookSubscriptionResponse Hash] response from the API call
171
+ def retrieve_webhook_subscription(subscription_id:)
172
+ # Prepare query url.
173
+ _query_builder = config.get_base_uri
174
+ _query_builder << '/v2/webhooks/subscriptions/{subscription_id}'
175
+ _query_builder = APIHelper.append_url_with_template_parameters(
176
+ _query_builder,
177
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
178
+ )
179
+ _query_url = APIHelper.clean_url _query_builder
180
+
181
+ # Prepare headers.
182
+ _headers = {
183
+ 'accept' => 'application/json'
184
+ }
185
+
186
+ # Prepare and execute HttpRequest.
187
+ _request = config.http_client.get(
188
+ _query_url,
189
+ headers: _headers
190
+ )
191
+ OAuth2.apply(config, _request)
192
+ _response = execute_request(_request)
193
+
194
+ # Return appropriate response type.
195
+ decoded = APIHelper.json_deserialize(_response.raw_body)
196
+ _errors = APIHelper.map_response(decoded, ['errors'])
197
+ ApiResponse.new(
198
+ _response, data: decoded, errors: _errors
199
+ )
200
+ end
201
+
202
+ # Updates a webhook subscription.
203
+ # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
204
+ # the [Subscription]($m/WebhookSubscription) to update.
205
+ # @param [UpdateWebhookSubscriptionRequest] body Required parameter: An
206
+ # object containing the fields to POST for the request. See the
207
+ # corresponding object definition for field details.
208
+ # @return [UpdateWebhookSubscriptionResponse Hash] response from the API call
209
+ def update_webhook_subscription(subscription_id:,
210
+ body:)
211
+ # Prepare query url.
212
+ _query_builder = config.get_base_uri
213
+ _query_builder << '/v2/webhooks/subscriptions/{subscription_id}'
214
+ _query_builder = APIHelper.append_url_with_template_parameters(
215
+ _query_builder,
216
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
217
+ )
218
+ _query_url = APIHelper.clean_url _query_builder
219
+
220
+ # Prepare headers.
221
+ _headers = {
222
+ 'accept' => 'application/json',
223
+ 'Content-Type' => 'application/json'
224
+ }
225
+
226
+ # Prepare and execute HttpRequest.
227
+ _request = config.http_client.put(
228
+ _query_url,
229
+ headers: _headers,
230
+ parameters: body.to_json
231
+ )
232
+ OAuth2.apply(config, _request)
233
+ _response = execute_request(_request)
234
+
235
+ # Return appropriate response type.
236
+ decoded = APIHelper.json_deserialize(_response.raw_body)
237
+ _errors = APIHelper.map_response(decoded, ['errors'])
238
+ ApiResponse.new(
239
+ _response, data: decoded, errors: _errors
240
+ )
241
+ end
242
+
243
+ # Updates a webhook subscription by replacing the existing signature key
244
+ # with a new one.
245
+ # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
246
+ # the [Subscription]($m/WebhookSubscription) to update.
247
+ # @param [UpdateWebhookSubscriptionSignatureKeyRequest] body Required
248
+ # parameter: An object containing the fields to POST for the request. See
249
+ # the corresponding object definition for field details.
250
+ # @return [UpdateWebhookSubscriptionSignatureKeyResponse Hash] response from the API call
251
+ def update_webhook_subscription_signature_key(subscription_id:,
252
+ body:)
253
+ # Prepare query url.
254
+ _query_builder = config.get_base_uri
255
+ _query_builder << '/v2/webhooks/subscriptions/{subscription_id}/signature-key'
256
+ _query_builder = APIHelper.append_url_with_template_parameters(
257
+ _query_builder,
258
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
259
+ )
260
+ _query_url = APIHelper.clean_url _query_builder
261
+
262
+ # Prepare headers.
263
+ _headers = {
264
+ 'accept' => 'application/json',
265
+ 'Content-Type' => 'application/json'
266
+ }
267
+
268
+ # Prepare and execute HttpRequest.
269
+ _request = config.http_client.post(
270
+ _query_url,
271
+ headers: _headers,
272
+ parameters: body.to_json
273
+ )
274
+ OAuth2.apply(config, _request)
275
+ _response = execute_request(_request)
276
+
277
+ # Return appropriate response type.
278
+ decoded = APIHelper.json_deserialize(_response.raw_body)
279
+ _errors = APIHelper.map_response(decoded, ['errors'])
280
+ ApiResponse.new(
281
+ _response, data: decoded, errors: _errors
282
+ )
283
+ end
284
+
285
+ # Tests a webhook subscription by sending a test event to the notification
286
+ # URL.
287
+ # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
288
+ # the [Subscription]($m/WebhookSubscription) to test.
289
+ # @param [TestWebhookSubscriptionRequest] body Required parameter: An object
290
+ # containing the fields to POST for the request. See the corresponding
291
+ # object definition for field details.
292
+ # @return [TestWebhookSubscriptionResponse Hash] response from the API call
293
+ def test_webhook_subscription(subscription_id:,
294
+ body:)
295
+ # Prepare query url.
296
+ _query_builder = config.get_base_uri
297
+ _query_builder << '/v2/webhooks/subscriptions/{subscription_id}/test'
298
+ _query_builder = APIHelper.append_url_with_template_parameters(
299
+ _query_builder,
300
+ 'subscription_id' => { 'value' => subscription_id, 'encode' => true }
301
+ )
302
+ _query_url = APIHelper.clean_url _query_builder
303
+
304
+ # Prepare headers.
305
+ _headers = {
306
+ 'accept' => 'application/json',
307
+ 'Content-Type' => 'application/json'
308
+ }
309
+
310
+ # Prepare and execute HttpRequest.
311
+ _request = config.http_client.post(
312
+ _query_url,
313
+ headers: _headers,
314
+ parameters: body.to_json
315
+ )
316
+ OAuth2.apply(config, _request)
317
+ _response = execute_request(_request)
318
+
319
+ # Return appropriate response type.
320
+ decoded = APIHelper.json_deserialize(_response.raw_body)
321
+ _errors = APIHelper.map_response(decoded, ['errors'])
322
+ ApiResponse.new(
323
+ _response, data: decoded, errors: _errors
324
+ )
325
+ end
326
+ end
327
+ end