square.rb 26.0.0.20221214 → 26.2.0.20230315

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  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 +164 -329
  7. data/lib/square/api/bookings_api.rb +135 -260
  8. data/lib/square/api/cards_api.rb +56 -118
  9. data/lib/square/api/cash_drawers_api.rb +47 -103
  10. data/lib/square/api/catalog_api.rb +197 -423
  11. data/lib/square/api/checkout_api.rb +85 -175
  12. data/lib/square/api/customer_custom_attributes_api.rb +150 -303
  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 +130 -288
  18. data/lib/square/api/employees_api.rb +28 -63
  19. data/lib/square/api/gift_card_activities_api.rb +33 -65
  20. data/lib/square/api/gift_cards_api.rb +103 -202
  21. data/lib/square/api/inventory_api.rb +179 -366
  22. data/lib/square/api/invoices_api.rb +118 -237
  23. data/lib/square/api/labor_api.rb +223 -459
  24. data/lib/square/api/location_custom_attributes_api.rb +419 -0
  25. data/lib/square/api/locations_api.rb +54 -112
  26. data/lib/square/api/loyalty_api.rb +259 -512
  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 +168 -333
  31. data/lib/square/api/orders_api.rb +115 -222
  32. data/lib/square/api/payments_api.rb +106 -208
  33. data/lib/square/api/payouts_api.rb +47 -100
  34. data/lib/square/api/refunds_api.rb +46 -93
  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 +62 -126
  41. data/lib/square/api/v1_transactions_api.rb +155 -296
  42. data/lib/square/api/vendors_api.rb +99 -192
  43. data/lib/square/api/webhook_subscriptions_api.rb +115 -235
  44. data/lib/square/api_helper.rb +1 -437
  45. data/lib/square/client.rb +82 -46
  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 +7 -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 +12 -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,10 +1,6 @@
1
1
  module Square
2
2
  # CustomersApi
3
3
  class CustomersApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
4
  # Lists customer profiles associated with a Square account.
9
5
  # Under normal operating conditions, newly created or updated customer
10
6
  # profiles become available
@@ -35,37 +31,21 @@ module Square
35
31
  limit: nil,
36
32
  sort_field: nil,
37
33
  sort_order: nil)
38
- # Prepare query url.
39
- _query_builder = config.get_base_uri
40
- _query_builder << '/v2/customers'
41
- _query_builder = APIHelper.append_url_with_query_parameters(
42
- _query_builder,
43
- 'cursor' => cursor,
44
- 'limit' => limit,
45
- 'sort_field' => sort_field,
46
- 'sort_order' => sort_order
47
- )
48
- _query_url = APIHelper.clean_url _query_builder
49
-
50
- # Prepare headers.
51
- _headers = {
52
- 'accept' => 'application/json'
53
- }
54
-
55
- # Prepare and execute HttpRequest.
56
- _request = config.http_client.get(
57
- _query_url,
58
- headers: _headers
59
- )
60
- OAuth2.apply(config, _request)
61
- _response = execute_request(_request)
62
-
63
- # Return appropriate response type.
64
- decoded = APIHelper.json_deserialize(_response.raw_body)
65
- _errors = APIHelper.map_response(decoded, ['errors'])
66
- ApiResponse.new(
67
- _response, data: decoded, errors: _errors
68
- )
34
+ new_api_call_builder
35
+ .request(new_request_builder(HttpMethodEnum::GET,
36
+ '/v2/customers',
37
+ 'default')
38
+ .query_param(new_parameter(cursor, key: 'cursor'))
39
+ .query_param(new_parameter(limit, key: 'limit'))
40
+ .query_param(new_parameter(sort_field, key: 'sort_field'))
41
+ .query_param(new_parameter(sort_order, key: 'sort_order'))
42
+ .header_param(new_parameter('application/json', key: 'accept'))
43
+ .auth(Single.new('global')))
44
+ .response(new_response_handler
45
+ .deserializer(APIHelper.method(:json_deserialize))
46
+ .is_api_response(true)
47
+ .convertor(ApiResponse.method(:create)))
48
+ .execute
69
49
  end
70
50
 
71
51
  # Creates a new customer for a business.
@@ -82,32 +62,20 @@ module Square
82
62
  # object definition for field details.
83
63
  # @return [CreateCustomerResponse Hash] response from the API call
84
64
  def create_customer(body:)
85
- # Prepare query url.
86
- _query_builder = config.get_base_uri
87
- _query_builder << '/v2/customers'
88
- _query_url = APIHelper.clean_url _query_builder
89
-
90
- # Prepare headers.
91
- _headers = {
92
- 'accept' => 'application/json',
93
- 'Content-Type' => 'application/json'
94
- }
95
-
96
- # Prepare and execute HttpRequest.
97
- _request = config.http_client.post(
98
- _query_url,
99
- headers: _headers,
100
- parameters: body.to_json
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(
109
- _response, data: decoded, errors: _errors
110
- )
65
+ new_api_call_builder
66
+ .request(new_request_builder(HttpMethodEnum::POST,
67
+ '/v2/customers',
68
+ 'default')
69
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
70
+ .body_param(new_parameter(body))
71
+ .header_param(new_parameter('application/json', key: 'accept'))
72
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
73
+ .auth(Single.new('global')))
74
+ .response(new_response_handler
75
+ .deserializer(APIHelper.method(:json_deserialize))
76
+ .is_api_response(true)
77
+ .convertor(ApiResponse.method(:create)))
78
+ .execute
111
79
  end
112
80
 
113
81
  # Searches the customer profiles associated with a Square account using one
@@ -126,32 +94,20 @@ module Square
126
94
  # object definition for field details.
127
95
  # @return [SearchCustomersResponse Hash] response from the API call
128
96
  def search_customers(body:)
129
- # Prepare query url.
130
- _query_builder = config.get_base_uri
131
- _query_builder << '/v2/customers/search'
132
- _query_url = APIHelper.clean_url _query_builder
133
-
134
- # Prepare headers.
135
- _headers = {
136
- 'accept' => 'application/json',
137
- 'Content-Type' => 'application/json'
138
- }
139
-
140
- # Prepare and execute HttpRequest.
141
- _request = config.http_client.post(
142
- _query_url,
143
- headers: _headers,
144
- parameters: body.to_json
145
- )
146
- OAuth2.apply(config, _request)
147
- _response = execute_request(_request)
148
-
149
- # Return appropriate response type.
150
- decoded = APIHelper.json_deserialize(_response.raw_body)
151
- _errors = APIHelper.map_response(decoded, ['errors'])
152
- ApiResponse.new(
153
- _response, data: decoded, errors: _errors
154
- )
97
+ new_api_call_builder
98
+ .request(new_request_builder(HttpMethodEnum::POST,
99
+ '/v2/customers/search',
100
+ 'default')
101
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
102
+ .body_param(new_parameter(body))
103
+ .header_param(new_parameter('application/json', key: 'accept'))
104
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
105
+ .auth(Single.new('global')))
106
+ .response(new_response_handler
107
+ .deserializer(APIHelper.method(:json_deserialize))
108
+ .is_api_response(true)
109
+ .convertor(ApiResponse.method(:create)))
110
+ .execute
155
111
  end
156
112
 
157
113
  # Deletes a customer profile from a business. This operation also unlinks
@@ -177,38 +133,20 @@ module Square
177
133
  # @return [DeleteCustomerResponse Hash] response from the API call
178
134
  def delete_customer(customer_id:,
179
135
  version: nil)
180
- # Prepare query url.
181
- _query_builder = config.get_base_uri
182
- _query_builder << '/v2/customers/{customer_id}'
183
- _query_builder = APIHelper.append_url_with_template_parameters(
184
- _query_builder,
185
- 'customer_id' => { 'value' => customer_id, 'encode' => true }
186
- )
187
- _query_builder = APIHelper.append_url_with_query_parameters(
188
- _query_builder,
189
- 'version' => version
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.delete(
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(
210
- _response, data: decoded, errors: _errors
211
- )
136
+ new_api_call_builder
137
+ .request(new_request_builder(HttpMethodEnum::DELETE,
138
+ '/v2/customers/{customer_id}',
139
+ 'default')
140
+ .template_param(new_parameter(customer_id, key: 'customer_id')
141
+ .should_encode(true))
142
+ .query_param(new_parameter(version, key: 'version'))
143
+ .header_param(new_parameter('application/json', key: 'accept'))
144
+ .auth(Single.new('global')))
145
+ .response(new_response_handler
146
+ .deserializer(APIHelper.method(:json_deserialize))
147
+ .is_api_response(true)
148
+ .convertor(ApiResponse.method(:create)))
149
+ .execute
212
150
  end
213
151
 
214
152
  # Returns details for a single customer.
@@ -216,34 +154,19 @@ module Square
216
154
  # retrieve.
217
155
  # @return [RetrieveCustomerResponse Hash] response from the API call
218
156
  def retrieve_customer(customer_id:)
219
- # Prepare query url.
220
- _query_builder = config.get_base_uri
221
- _query_builder << '/v2/customers/{customer_id}'
222
- _query_builder = APIHelper.append_url_with_template_parameters(
223
- _query_builder,
224
- 'customer_id' => { 'value' => customer_id, 'encode' => true }
225
- )
226
- _query_url = APIHelper.clean_url _query_builder
227
-
228
- # Prepare headers.
229
- _headers = {
230
- 'accept' => 'application/json'
231
- }
232
-
233
- # Prepare and execute HttpRequest.
234
- _request = config.http_client.get(
235
- _query_url,
236
- headers: _headers
237
- )
238
- OAuth2.apply(config, _request)
239
- _response = execute_request(_request)
240
-
241
- # Return appropriate response type.
242
- decoded = APIHelper.json_deserialize(_response.raw_body)
243
- _errors = APIHelper.map_response(decoded, ['errors'])
244
- ApiResponse.new(
245
- _response, data: decoded, errors: _errors
246
- )
157
+ new_api_call_builder
158
+ .request(new_request_builder(HttpMethodEnum::GET,
159
+ '/v2/customers/{customer_id}',
160
+ 'default')
161
+ .template_param(new_parameter(customer_id, key: 'customer_id')
162
+ .should_encode(true))
163
+ .header_param(new_parameter('application/json', key: 'accept'))
164
+ .auth(Single.new('global')))
165
+ .response(new_response_handler
166
+ .deserializer(APIHelper.method(:json_deserialize))
167
+ .is_api_response(true)
168
+ .convertor(ApiResponse.method(:create)))
169
+ .execute
247
170
  end
248
171
 
249
172
  # Updates a customer profile. This endpoint supports sparse updates, so only
@@ -269,36 +192,22 @@ module Square
269
192
  # @return [UpdateCustomerResponse Hash] response from the API call
270
193
  def update_customer(customer_id:,
271
194
  body:)
272
- # Prepare query url.
273
- _query_builder = config.get_base_uri
274
- _query_builder << '/v2/customers/{customer_id}'
275
- _query_builder = APIHelper.append_url_with_template_parameters(
276
- _query_builder,
277
- 'customer_id' => { 'value' => customer_id, 'encode' => true }
278
- )
279
- _query_url = APIHelper.clean_url _query_builder
280
-
281
- # Prepare headers.
282
- _headers = {
283
- 'accept' => 'application/json',
284
- 'Content-Type' => 'application/json'
285
- }
286
-
287
- # Prepare and execute HttpRequest.
288
- _request = config.http_client.put(
289
- _query_url,
290
- headers: _headers,
291
- parameters: body.to_json
292
- )
293
- OAuth2.apply(config, _request)
294
- _response = execute_request(_request)
295
-
296
- # Return appropriate response type.
297
- decoded = APIHelper.json_deserialize(_response.raw_body)
298
- _errors = APIHelper.map_response(decoded, ['errors'])
299
- ApiResponse.new(
300
- _response, data: decoded, errors: _errors
301
- )
195
+ new_api_call_builder
196
+ .request(new_request_builder(HttpMethodEnum::PUT,
197
+ '/v2/customers/{customer_id}',
198
+ 'default')
199
+ .template_param(new_parameter(customer_id, key: 'customer_id')
200
+ .should_encode(true))
201
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
202
+ .body_param(new_parameter(body))
203
+ .header_param(new_parameter('application/json', key: 'accept'))
204
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
205
+ .auth(Single.new('global')))
206
+ .response(new_response_handler
207
+ .deserializer(APIHelper.method(:json_deserialize))
208
+ .is_api_response(true)
209
+ .convertor(ApiResponse.method(:create)))
210
+ .execute
302
211
  end
303
212
 
304
213
  # Adds a card on file to an existing customer.
@@ -315,36 +224,22 @@ module Square
315
224
  def create_customer_card(customer_id:,
316
225
  body:)
317
226
  warn 'Endpoint create_customer_card in CustomersApi is deprecated'
318
- # Prepare query url.
319
- _query_builder = config.get_base_uri
320
- _query_builder << '/v2/customers/{customer_id}/cards'
321
- _query_builder = APIHelper.append_url_with_template_parameters(
322
- _query_builder,
323
- 'customer_id' => { 'value' => customer_id, 'encode' => true }
324
- )
325
- _query_url = APIHelper.clean_url _query_builder
326
-
327
- # Prepare headers.
328
- _headers = {
329
- 'accept' => 'application/json',
330
- 'Content-Type' => 'application/json'
331
- }
332
-
333
- # Prepare and execute HttpRequest.
334
- _request = config.http_client.post(
335
- _query_url,
336
- headers: _headers,
337
- parameters: body.to_json
338
- )
339
- OAuth2.apply(config, _request)
340
- _response = execute_request(_request)
341
-
342
- # Return appropriate response type.
343
- decoded = APIHelper.json_deserialize(_response.raw_body)
344
- _errors = APIHelper.map_response(decoded, ['errors'])
345
- ApiResponse.new(
346
- _response, data: decoded, errors: _errors
347
- )
227
+ new_api_call_builder
228
+ .request(new_request_builder(HttpMethodEnum::POST,
229
+ '/v2/customers/{customer_id}/cards',
230
+ 'default')
231
+ .template_param(new_parameter(customer_id, key: 'customer_id')
232
+ .should_encode(true))
233
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
234
+ .body_param(new_parameter(body))
235
+ .header_param(new_parameter('application/json', key: 'accept'))
236
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
237
+ .auth(Single.new('global')))
238
+ .response(new_response_handler
239
+ .deserializer(APIHelper.method(:json_deserialize))
240
+ .is_api_response(true)
241
+ .convertor(ApiResponse.method(:create)))
242
+ .execute
348
243
  end
349
244
 
350
245
  # Removes a card on file from a customer.
@@ -356,35 +251,21 @@ module Square
356
251
  def delete_customer_card(customer_id:,
357
252
  card_id:)
358
253
  warn 'Endpoint delete_customer_card in CustomersApi is deprecated'
359
- # Prepare query url.
360
- _query_builder = config.get_base_uri
361
- _query_builder << '/v2/customers/{customer_id}/cards/{card_id}'
362
- _query_builder = APIHelper.append_url_with_template_parameters(
363
- _query_builder,
364
- 'customer_id' => { 'value' => customer_id, 'encode' => true },
365
- 'card_id' => { 'value' => card_id, 'encode' => true }
366
- )
367
- _query_url = APIHelper.clean_url _query_builder
368
-
369
- # Prepare headers.
370
- _headers = {
371
- 'accept' => 'application/json'
372
- }
373
-
374
- # Prepare and execute HttpRequest.
375
- _request = config.http_client.delete(
376
- _query_url,
377
- headers: _headers
378
- )
379
- OAuth2.apply(config, _request)
380
- _response = execute_request(_request)
381
-
382
- # Return appropriate response type.
383
- decoded = APIHelper.json_deserialize(_response.raw_body)
384
- _errors = APIHelper.map_response(decoded, ['errors'])
385
- ApiResponse.new(
386
- _response, data: decoded, errors: _errors
387
- )
254
+ new_api_call_builder
255
+ .request(new_request_builder(HttpMethodEnum::DELETE,
256
+ '/v2/customers/{customer_id}/cards/{card_id}',
257
+ 'default')
258
+ .template_param(new_parameter(customer_id, key: 'customer_id')
259
+ .should_encode(true))
260
+ .template_param(new_parameter(card_id, key: 'card_id')
261
+ .should_encode(true))
262
+ .header_param(new_parameter('application/json', key: 'accept'))
263
+ .auth(Single.new('global')))
264
+ .response(new_response_handler
265
+ .deserializer(APIHelper.method(:json_deserialize))
266
+ .is_api_response(true)
267
+ .convertor(ApiResponse.method(:create)))
268
+ .execute
388
269
  end
389
270
 
390
271
  # Removes a group membership from a customer.
@@ -397,35 +278,21 @@ module Square
397
278
  # @return [RemoveGroupFromCustomerResponse Hash] response from the API call
398
279
  def remove_group_from_customer(customer_id:,
399
280
  group_id:)
400
- # Prepare query url.
401
- _query_builder = config.get_base_uri
402
- _query_builder << '/v2/customers/{customer_id}/groups/{group_id}'
403
- _query_builder = APIHelper.append_url_with_template_parameters(
404
- _query_builder,
405
- 'customer_id' => { 'value' => customer_id, 'encode' => true },
406
- 'group_id' => { 'value' => group_id, 'encode' => true }
407
- )
408
- _query_url = APIHelper.clean_url _query_builder
409
-
410
- # Prepare headers.
411
- _headers = {
412
- 'accept' => 'application/json'
413
- }
414
-
415
- # Prepare and execute HttpRequest.
416
- _request = config.http_client.delete(
417
- _query_url,
418
- headers: _headers
419
- )
420
- OAuth2.apply(config, _request)
421
- _response = execute_request(_request)
422
-
423
- # Return appropriate response type.
424
- decoded = APIHelper.json_deserialize(_response.raw_body)
425
- _errors = APIHelper.map_response(decoded, ['errors'])
426
- ApiResponse.new(
427
- _response, data: decoded, errors: _errors
428
- )
281
+ new_api_call_builder
282
+ .request(new_request_builder(HttpMethodEnum::DELETE,
283
+ '/v2/customers/{customer_id}/groups/{group_id}',
284
+ 'default')
285
+ .template_param(new_parameter(customer_id, key: 'customer_id')
286
+ .should_encode(true))
287
+ .template_param(new_parameter(group_id, key: 'group_id')
288
+ .should_encode(true))
289
+ .header_param(new_parameter('application/json', key: 'accept'))
290
+ .auth(Single.new('global')))
291
+ .response(new_response_handler
292
+ .deserializer(APIHelper.method(:json_deserialize))
293
+ .is_api_response(true)
294
+ .convertor(ApiResponse.method(:create)))
295
+ .execute
429
296
  end
430
297
 
431
298
  # Adds a group membership to a customer.
@@ -438,35 +305,21 @@ module Square
438
305
  # @return [AddGroupToCustomerResponse Hash] response from the API call
439
306
  def add_group_to_customer(customer_id:,
440
307
  group_id:)
441
- # Prepare query url.
442
- _query_builder = config.get_base_uri
443
- _query_builder << '/v2/customers/{customer_id}/groups/{group_id}'
444
- _query_builder = APIHelper.append_url_with_template_parameters(
445
- _query_builder,
446
- 'customer_id' => { 'value' => customer_id, 'encode' => true },
447
- 'group_id' => { 'value' => group_id, 'encode' => true }
448
- )
449
- _query_url = APIHelper.clean_url _query_builder
450
-
451
- # Prepare headers.
452
- _headers = {
453
- 'accept' => 'application/json'
454
- }
455
-
456
- # Prepare and execute HttpRequest.
457
- _request = config.http_client.put(
458
- _query_url,
459
- headers: _headers
460
- )
461
- OAuth2.apply(config, _request)
462
- _response = execute_request(_request)
463
-
464
- # Return appropriate response type.
465
- decoded = APIHelper.json_deserialize(_response.raw_body)
466
- _errors = APIHelper.map_response(decoded, ['errors'])
467
- ApiResponse.new(
468
- _response, data: decoded, errors: _errors
469
- )
308
+ new_api_call_builder
309
+ .request(new_request_builder(HttpMethodEnum::PUT,
310
+ '/v2/customers/{customer_id}/groups/{group_id}',
311
+ 'default')
312
+ .template_param(new_parameter(customer_id, key: 'customer_id')
313
+ .should_encode(true))
314
+ .template_param(new_parameter(group_id, key: 'group_id')
315
+ .should_encode(true))
316
+ .header_param(new_parameter('application/json', key: 'accept'))
317
+ .auth(Single.new('global')))
318
+ .response(new_response_handler
319
+ .deserializer(APIHelper.method(:json_deserialize))
320
+ .is_api_response(true)
321
+ .convertor(ApiResponse.method(:create)))
322
+ .execute
470
323
  end
471
324
  end
472
325
  end