square.rb 26.1.0.20230119 → 27.0.0.20230419

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.
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,44 +1,24 @@
1
1
  module Square
2
2
  # WebhookSubscriptionsApi
3
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
4
  # Lists all webhook event types that can be subscribed to.
9
5
  # @param [String] api_version Optional parameter: The API version for which
10
6
  # to list event types. Setting this field overrides the default version used
11
7
  # by the application.
12
8
  # @return [ListWebhookEventTypesResponse Hash] response from the API call
13
9
  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
- )
10
+ new_api_call_builder
11
+ .request(new_request_builder(HttpMethodEnum::GET,
12
+ '/v2/webhooks/event-types',
13
+ 'default')
14
+ .query_param(new_parameter(api_version, key: 'api_version'))
15
+ .header_param(new_parameter('application/json', key: 'accept'))
16
+ .auth(Single.new('global')))
17
+ .response(new_response_handler
18
+ .deserializer(APIHelper.method(:json_deserialize))
19
+ .is_api_response(true)
20
+ .convertor(ApiResponse.method(:create)))
21
+ .execute
42
22
  end
43
23
 
44
24
  # Lists all webhook subscriptions owned by your application.
@@ -48,11 +28,11 @@ module Square
48
28
  # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
49
29
  # .
50
30
  # @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.
31
+ # Includes disabled [Subscription](entity:WebhookSubscription)s. By default,
32
+ # all enabled [Subscription](entity:WebhookSubscription)s are returned.
53
33
  # @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.
34
+ # by when the [Subscription](entity:WebhookSubscription) was created with
35
+ # the specified order. This field defaults to ASC.
56
36
  # @param [Integer] limit Optional parameter: The maximum number of results
57
37
  # to be returned in a single page. It is possible to receive fewer results
58
38
  # than the specified limit on a given page. The default value of 100 is also
@@ -62,37 +42,21 @@ module Square
62
42
  include_disabled: false,
63
43
  sort_order: nil,
64
44
  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
- )
45
+ new_api_call_builder
46
+ .request(new_request_builder(HttpMethodEnum::GET,
47
+ '/v2/webhooks/subscriptions',
48
+ 'default')
49
+ .query_param(new_parameter(cursor, key: 'cursor'))
50
+ .query_param(new_parameter(include_disabled, key: 'include_disabled'))
51
+ .query_param(new_parameter(sort_order, key: 'sort_order'))
52
+ .query_param(new_parameter(limit, key: 'limit'))
53
+ .header_param(new_parameter('application/json', key: 'accept'))
54
+ .auth(Single.new('global')))
55
+ .response(new_response_handler
56
+ .deserializer(APIHelper.method(:json_deserialize))
57
+ .is_api_response(true)
58
+ .convertor(ApiResponse.method(:create)))
59
+ .execute
96
60
  end
97
61
 
98
62
  # Creates a webhook subscription.
@@ -101,227 +65,143 @@ module Square
101
65
  # corresponding object definition for field details.
102
66
  # @return [CreateWebhookSubscriptionResponse Hash] response from the API call
103
67
  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
- )
68
+ new_api_call_builder
69
+ .request(new_request_builder(HttpMethodEnum::POST,
70
+ '/v2/webhooks/subscriptions',
71
+ 'default')
72
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
73
+ .body_param(new_parameter(body))
74
+ .header_param(new_parameter('application/json', key: 'accept'))
75
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
76
+ .auth(Single.new('global')))
77
+ .response(new_response_handler
78
+ .deserializer(APIHelper.method(:json_deserialize))
79
+ .is_api_response(true)
80
+ .convertor(ApiResponse.method(:create)))
81
+ .execute
130
82
  end
131
83
 
132
84
  # Deletes a webhook subscription.
133
85
  # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
134
- # the [Subscription]($m/WebhookSubscription) to delete.
86
+ # the [Subscription](entity:WebhookSubscription) to delete.
135
87
  # @return [DeleteWebhookSubscriptionResponse Hash] response from the API call
136
88
  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
- )
89
+ new_api_call_builder
90
+ .request(new_request_builder(HttpMethodEnum::DELETE,
91
+ '/v2/webhooks/subscriptions/{subscription_id}',
92
+ 'default')
93
+ .template_param(new_parameter(subscription_id, key: 'subscription_id')
94
+ .should_encode(true))
95
+ .header_param(new_parameter('application/json', key: 'accept'))
96
+ .auth(Single.new('global')))
97
+ .response(new_response_handler
98
+ .deserializer(APIHelper.method(:json_deserialize))
99
+ .is_api_response(true)
100
+ .convertor(ApiResponse.method(:create)))
101
+ .execute
165
102
  end
166
103
 
167
104
  # Retrieves a webhook subscription identified by its ID.
168
105
  # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
169
- # the [Subscription]($m/WebhookSubscription) to retrieve.
106
+ # the [Subscription](entity:WebhookSubscription) to retrieve.
170
107
  # @return [RetrieveWebhookSubscriptionResponse Hash] response from the API call
171
108
  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
- )
109
+ new_api_call_builder
110
+ .request(new_request_builder(HttpMethodEnum::GET,
111
+ '/v2/webhooks/subscriptions/{subscription_id}',
112
+ 'default')
113
+ .template_param(new_parameter(subscription_id, key: 'subscription_id')
114
+ .should_encode(true))
115
+ .header_param(new_parameter('application/json', key: 'accept'))
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
200
122
  end
201
123
 
202
124
  # Updates a webhook subscription.
203
125
  # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
204
- # the [Subscription]($m/WebhookSubscription) to update.
126
+ # the [Subscription](entity:WebhookSubscription) to update.
205
127
  # @param [UpdateWebhookSubscriptionRequest] body Required parameter: An
206
128
  # object containing the fields to POST for the request. See the
207
129
  # corresponding object definition for field details.
208
130
  # @return [UpdateWebhookSubscriptionResponse Hash] response from the API call
209
131
  def update_webhook_subscription(subscription_id:,
210
132
  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
- )
133
+ new_api_call_builder
134
+ .request(new_request_builder(HttpMethodEnum::PUT,
135
+ '/v2/webhooks/subscriptions/{subscription_id}',
136
+ 'default')
137
+ .template_param(new_parameter(subscription_id, key: 'subscription_id')
138
+ .should_encode(true))
139
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
140
+ .body_param(new_parameter(body))
141
+ .header_param(new_parameter('application/json', key: 'accept'))
142
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
143
+ .auth(Single.new('global')))
144
+ .response(new_response_handler
145
+ .deserializer(APIHelper.method(:json_deserialize))
146
+ .is_api_response(true)
147
+ .convertor(ApiResponse.method(:create)))
148
+ .execute
241
149
  end
242
150
 
243
151
  # Updates a webhook subscription by replacing the existing signature key
244
152
  # with a new one.
245
153
  # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
246
- # the [Subscription]($m/WebhookSubscription) to update.
154
+ # the [Subscription](entity:WebhookSubscription) to update.
247
155
  # @param [UpdateWebhookSubscriptionSignatureKeyRequest] body Required
248
156
  # parameter: An object containing the fields to POST for the request. See
249
157
  # the corresponding object definition for field details.
250
158
  # @return [UpdateWebhookSubscriptionSignatureKeyResponse Hash] response from the API call
251
159
  def update_webhook_subscription_signature_key(subscription_id:,
252
160
  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
- )
161
+ new_api_call_builder
162
+ .request(new_request_builder(HttpMethodEnum::POST,
163
+ '/v2/webhooks/subscriptions/{subscription_id}/signature-key',
164
+ 'default')
165
+ .template_param(new_parameter(subscription_id, key: 'subscription_id')
166
+ .should_encode(true))
167
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
168
+ .body_param(new_parameter(body))
169
+ .header_param(new_parameter('application/json', key: 'accept'))
170
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
171
+ .auth(Single.new('global')))
172
+ .response(new_response_handler
173
+ .deserializer(APIHelper.method(:json_deserialize))
174
+ .is_api_response(true)
175
+ .convertor(ApiResponse.method(:create)))
176
+ .execute
283
177
  end
284
178
 
285
179
  # Tests a webhook subscription by sending a test event to the notification
286
180
  # URL.
287
181
  # @param [String] subscription_id Required parameter: [REQUIRED] The ID of
288
- # the [Subscription]($m/WebhookSubscription) to test.
182
+ # the [Subscription](entity:WebhookSubscription) to test.
289
183
  # @param [TestWebhookSubscriptionRequest] body Required parameter: An object
290
184
  # containing the fields to POST for the request. See the corresponding
291
185
  # object definition for field details.
292
186
  # @return [TestWebhookSubscriptionResponse Hash] response from the API call
293
187
  def test_webhook_subscription(subscription_id:,
294
188
  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
- )
189
+ new_api_call_builder
190
+ .request(new_request_builder(HttpMethodEnum::POST,
191
+ '/v2/webhooks/subscriptions/{subscription_id}/test',
192
+ 'default')
193
+ .template_param(new_parameter(subscription_id, key: 'subscription_id')
194
+ .should_encode(true))
195
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
196
+ .body_param(new_parameter(body))
197
+ .header_param(new_parameter('application/json', key: 'accept'))
198
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
199
+ .auth(Single.new('global')))
200
+ .response(new_response_handler
201
+ .deserializer(APIHelper.method(:json_deserialize))
202
+ .is_api_response(true)
203
+ .convertor(ApiResponse.method(:create)))
204
+ .execute
325
205
  end
326
206
  end
327
207
  end