square.rb 8.1.0.20210121 → 18.1.0.20220316

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +59 -213
  4. data/lib/square/api/apple_pay_api.rb +9 -8
  5. data/lib/square/api/bank_accounts_api.rb +5 -5
  6. data/lib/square/api/base_api.rb +20 -9
  7. data/lib/square/api/bookings_api.rb +95 -12
  8. data/lib/square/api/cards_api.rb +170 -0
  9. data/lib/square/api/cash_drawers_api.rb +2 -2
  10. data/lib/square/api/catalog_api.rb +140 -66
  11. data/lib/square/api/checkout_api.rb +3 -3
  12. data/lib/square/api/customer_groups_api.rb +17 -8
  13. data/lib/square/api/customer_segments_api.rb +15 -6
  14. data/lib/square/api/customers_api.rb +61 -31
  15. data/lib/square/api/devices_api.rb +3 -2
  16. data/lib/square/api/disputes_api.rb +101 -92
  17. data/lib/square/api/gift_card_activities_api.rb +133 -0
  18. data/lib/square/api/gift_cards_api.rb +297 -0
  19. data/lib/square/api/inventory_api.rb +263 -24
  20. data/lib/square/api/invoices_api.rb +19 -19
  21. data/lib/square/api/labor_api.rb +70 -68
  22. data/lib/square/api/locations_api.rb +22 -14
  23. data/lib/square/api/loyalty_api.rb +86 -32
  24. data/lib/square/api/merchants_api.rb +11 -9
  25. data/lib/square/api/mobile_authorization_api.rb +4 -4
  26. data/lib/square/api/o_auth_api.rb +31 -25
  27. data/lib/square/api/orders_api.rb +78 -39
  28. data/lib/square/api/payments_api.rb +71 -23
  29. data/lib/square/api/refunds_api.rb +18 -7
  30. data/lib/square/api/sites_api.rb +43 -0
  31. data/lib/square/api/snippets_api.rb +146 -0
  32. data/lib/square/api/subscriptions_api.rb +190 -12
  33. data/lib/square/api/team_api.rb +46 -46
  34. data/lib/square/api/terminal_api.rb +19 -18
  35. data/lib/square/api/transactions_api.rb +15 -191
  36. data/lib/square/api/v1_transactions_api.rb +13 -85
  37. data/lib/square/api/vendors_api.rb +257 -0
  38. data/lib/square/api_helper.rb +45 -57
  39. data/lib/square/client.rb +54 -18
  40. data/lib/square/configuration.rb +59 -20
  41. data/lib/square/http/api_response.rb +1 -1
  42. data/lib/square/http/faraday_client.rb +24 -4
  43. data/lib/square/utilities/date_time_helper.rb +151 -0
  44. data/lib/square/utilities/file_wrapper.rb +1 -2
  45. data/lib/square.rb +49 -44
  46. data/test/api/test_locations_api.rb +2 -5
  47. data/test/test_helper.rb +1 -1
  48. metadata +11 -6
  49. data/lib/square/api/v1_employees_api.rb +0 -749
  50. data/lib/square/api/v1_items_api.rb +0 -1766
@@ -5,14 +5,14 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Creates a new [Order](#type-order) which can include information on
8
+ # Creates a new [order]($m/Order) that can include information about
9
9
  # products for
10
10
  # purchase and settings to apply to the purchase.
11
- # To pay for a created order, please refer to the [Pay for
12
- # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders)
13
- # guide.
14
- # You can modify open orders using the
15
- # [UpdateOrder](#endpoint-orders-updateorder) endpoint.
11
+ # To pay for a created order, see
12
+ # [Pay for
13
+ # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders).
14
+ # You can modify open orders using the [UpdateOrder]($e/Orders/UpdateOrder)
15
+ # endpoint.
16
16
  # @param [CreateOrderRequest] body Required parameter: An object containing
17
17
  # the fields to POST for the request. See the corresponding object
18
18
  # definition for field details.
@@ -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.
@@ -46,8 +46,8 @@ module Square
46
46
  )
47
47
  end
48
48
 
49
- # Retrieves a set of [Order](#type-order)s by their IDs.
50
- # If a given Order ID does not exist, the ID is ignored instead of
49
+ # Retrieves a set of [orders]($m/Order) by their IDs.
50
+ # If a given order ID does not exist, the ID is ignored instead of
51
51
  # generating an error.
52
52
  # @param [BatchRetrieveOrdersRequest] body Required parameter: An object
53
53
  # containing the fields to POST for the request. See the corresponding
@@ -62,7 +62,7 @@ module Square
62
62
  # Prepare headers.
63
63
  _headers = {
64
64
  'accept' => 'application/json',
65
- 'content-type' => 'application/json; charset=utf-8'
65
+ 'Content-Type' => 'application/json'
66
66
  }
67
67
 
68
68
  # Prepare and execute HttpRequest.
@@ -82,7 +82,7 @@ module Square
82
82
  )
83
83
  end
84
84
 
85
- # Calculates an [Order](#type-order).
85
+ # Enables applications to preview order pricing without creating an order.
86
86
  # @param [CalculateOrderRequest] body Required parameter: An object
87
87
  # containing the fields to POST for the request. See the corresponding
88
88
  # object definition for field details.
@@ -96,7 +96,44 @@ module Square
96
96
  # Prepare headers.
97
97
  _headers = {
98
98
  'accept' => 'application/json',
99
- 'content-type' => 'application/json; charset=utf-8'
99
+ 'Content-Type' => 'application/json'
100
+ }
101
+
102
+ # Prepare and execute HttpRequest.
103
+ _request = config.http_client.post(
104
+ _query_url,
105
+ headers: _headers,
106
+ parameters: body.to_json
107
+ )
108
+ OAuth2.apply(config, _request)
109
+ _response = execute_request(_request)
110
+
111
+ # Return appropriate response type.
112
+ decoded = APIHelper.json_deserialize(_response.raw_body)
113
+ _errors = APIHelper.map_response(decoded, ['errors'])
114
+ ApiResponse.new(
115
+ _response, data: decoded, errors: _errors
116
+ )
117
+ end
118
+
119
+ # Creates a new order, in the `DRAFT` state, by duplicating an existing
120
+ # order. The newly created order has
121
+ # only the core fields (such as line items, taxes, and discounts) copied
122
+ # from the original order.
123
+ # @param [CloneOrderRequest] body Required parameter: An object containing
124
+ # the fields to POST for the request. See the corresponding object
125
+ # definition for field details.
126
+ # @return [CloneOrderResponse Hash] response from the API call
127
+ def clone_order(body:)
128
+ # Prepare query url.
129
+ _query_builder = config.get_base_uri
130
+ _query_builder << '/v2/orders/clone'
131
+ _query_url = APIHelper.clean_url _query_builder
132
+
133
+ # Prepare headers.
134
+ _headers = {
135
+ 'accept' => 'application/json',
136
+ 'Content-Type' => 'application/json'
100
137
  }
101
138
 
102
139
  # Prepare and execute HttpRequest.
@@ -118,17 +155,18 @@ module Square
118
155
 
119
156
  # Search all orders for one or more locations. Orders include all sales,
120
157
  # returns, and exchanges regardless of how or when they entered the Square
121
- # Ecosystem (e.g. Point of Sale, Invoices, Connect APIs, etc).
122
- # SearchOrders requests need to specify which locations to search and define
123
- # a
124
- # [`SearchOrdersQuery`](#type-searchordersquery) object which controls
125
- # how to sort or filter the results. Your SearchOrdersQuery can:
158
+ # ecosystem (such as Point of Sale, Invoices, and Connect APIs).
159
+ # `SearchOrders` requests need to specify which locations to search and
160
+ # define a
161
+ # [SearchOrdersQuery]($m/SearchOrdersQuery) object that controls
162
+ # how to sort or filter the results. Your `SearchOrdersQuery` can:
126
163
  # Set filter criteria.
127
- # Set sort order.
128
- # Determine whether to return results as complete Order objects, or as
129
- # [OrderEntry](#type-orderentry) objects.
164
+ # Set the sort order.
165
+ # Determine whether to return results as complete `Order` objects or as
166
+ # [OrderEntry]($m/OrderEntry) objects.
130
167
  # Note that details for orders processed with Square Point of Sale while in
131
- # offline mode may not be transmitted to Square for up to 72 hours. Offline
168
+ # offline mode might not be transmitted to Square for up to 72 hours.
169
+ # Offline
132
170
  # orders have a `created_at` value that reflects the time the order was
133
171
  # created,
134
172
  # not the time it was subsequently transmitted to Square.
@@ -145,7 +183,7 @@ module Square
145
183
  # Prepare headers.
146
184
  _headers = {
147
185
  'accept' => 'application/json',
148
- 'content-type' => 'application/json; charset=utf-8'
186
+ 'Content-Type' => 'application/json'
149
187
  }
150
188
 
151
189
  # Prepare and execute HttpRequest.
@@ -165,7 +203,7 @@ module Square
165
203
  )
166
204
  end
167
205
 
168
- # Retrieves an [Order](#type-order) by ID.
206
+ # Retrieves an [Order]($m/Order) by ID.
169
207
  # @param [String] order_id Required parameter: The ID of the order to
170
208
  # retrieve.
171
209
  # @return [RetrieveOrderResponse Hash] response from the API call
@@ -200,23 +238,24 @@ module Square
200
238
  )
201
239
  end
202
240
 
203
- # Updates an open [Order](#type-order) by adding, replacing, or deleting
241
+ # Updates an open [order]($m/Order) by adding, replacing, or deleting
204
242
  # fields. Orders with a `COMPLETED` or `CANCELED` state cannot be updated.
205
- # An UpdateOrder request requires the following:
243
+ # An `UpdateOrder` request requires the following:
206
244
  # - The `order_id` in the endpoint path, identifying the order to update.
207
245
  # - The latest `version` of the order to update.
208
246
  # - The [sparse
209
247
  # order](https://developer.squareup.com/docs/orders-api/manage-orders#sparse
210
248
  # -order-objects)
211
- # containing only the fields to update and the version the update is
212
- # being applied to.
249
+ # containing only the fields to update and the version to which the update
250
+ # is
251
+ # being applied.
213
252
  # - If deleting fields, the [dot notation
214
253
  # paths](https://developer.squareup.com/docs/orders-api/manage-orders#on-dot
215
254
  # -notation)
216
- # identifying fields to clear.
217
- # To pay for an order, please refer to the [Pay for
218
- # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders)
219
- # guide.
255
+ # identifying the fields to clear.
256
+ # To pay for an order, see
257
+ # [Pay for
258
+ # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders).
220
259
  # @param [String] order_id Required parameter: The ID of the order to
221
260
  # update.
222
261
  # @param [UpdateOrderRequest] body Required parameter: An object containing
@@ -237,7 +276,7 @@ module Square
237
276
  # Prepare headers.
238
277
  _headers = {
239
278
  'accept' => 'application/json',
240
- 'content-type' => 'application/json; charset=utf-8'
279
+ 'Content-Type' => 'application/json'
241
280
  }
242
281
 
243
282
  # Prepare and execute HttpRequest.
@@ -257,24 +296,24 @@ module Square
257
296
  )
258
297
  end
259
298
 
260
- # Pay for an [order](#type-order) using one or more approved
261
- # [payments](#type-payment),
299
+ # Pay for an [order]($m/Order) using one or more approved
300
+ # [payments]($m/Payment)
262
301
  # or settle an order with a total of `0`.
263
302
  # The total of the `payment_ids` listed in the request must be equal to the
264
303
  # order
265
304
  # total. Orders with a total amount of `0` can be marked as paid by
266
305
  # specifying an empty
267
306
  # array of `payment_ids` in the request.
268
- # To be used with PayOrder, a payment must:
307
+ # To be used with `PayOrder`, a payment must:
269
308
  # - Reference the order by specifying the `order_id` when [creating the
270
- # payment](#endpoint-payments-createpayment).
309
+ # payment]($e/Payments/CreatePayment).
271
310
  # Any approved payments that reference the same `order_id` not specified in
272
311
  # the
273
- # `payment_ids` will be canceled.
312
+ # `payment_ids` is canceled.
274
313
  # - Be approved with [delayed
275
314
  # capture](https://developer.squareup.com/docs/payments-api/take-payments#de
276
315
  # layed-capture).
277
- # Using a delayed capture payment with PayOrder will complete the approved
316
+ # Using a delayed capture payment with `PayOrder` completes the approved
278
317
  # payment.
279
318
  # @param [String] order_id Required parameter: The ID of the order being
280
319
  # paid.
@@ -296,7 +335,7 @@ module Square
296
335
  # Prepare headers.
297
336
  _headers = {
298
337
  'accept' => 'application/json',
299
- 'content-type' => 'application/json; charset=utf-8'
338
+ 'Content-Type' => 'application/json'
300
339
  }
301
340
 
302
341
  # Prepare and execute HttpRequest.
@@ -6,6 +6,9 @@ module Square
6
6
  end
7
7
 
8
8
  # Retrieves a list of payments taken by the account making the request.
9
+ # Results are eventually consistent, and new payments or changes to payments
10
+ # might take several
11
+ # seconds to appear.
9
12
  # The maximum results per page is 100.
10
13
  # @param [String] begin_time Optional parameter: The timestamp for the
11
14
  # beginning of the reporting period, in RFC 3339 format. Inclusive. Default:
@@ -83,16 +86,14 @@ module Square
83
86
  )
84
87
  end
85
88
 
86
- # Charges a payment source (for example, a card
87
- # represented by customer's card on file or a card nonce). In addition
88
- # to the payment source, the request must include the
89
- # amount to accept for the payment.
90
- # There are several optional parameters that you can include in the request
91
- # (for example, tip money, whether to autocomplete the payment, or a
92
- # reference ID
93
- # to correlate this payment with another system).
94
- # The `PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS` OAuth permission is required
95
- # to enable application fees.
89
+ # Creates a payment using the provided source. You can use this endpoint
90
+ # to charge a card (credit/debit card or
91
+ # Square gift card) or record a payment that the seller received outside of
92
+ # Square
93
+ # (cash payment from a buyer or a payment that an external entity
94
+ # processed on behalf of the seller).
95
+ # The endpoint creates a
96
+ # `Payment` object and returns it in the response.
96
97
  # @param [CreatePaymentRequest] body Required parameter: An object
97
98
  # containing the fields to POST for the request. See the corresponding
98
99
  # object definition for field details.
@@ -106,7 +107,7 @@ module Square
106
107
  # Prepare headers.
107
108
  _headers = {
108
109
  'accept' => 'application/json',
109
- 'content-type' => 'application/json; charset=utf-8'
110
+ 'Content-Type' => 'application/json'
110
111
  }
111
112
 
112
113
  # Prepare and execute HttpRequest.
@@ -154,7 +155,7 @@ module Square
154
155
  # Prepare headers.
155
156
  _headers = {
156
157
  'accept' => 'application/json',
157
- 'content-type' => 'application/json; charset=utf-8'
158
+ 'Content-Type' => 'application/json'
158
159
  }
159
160
 
160
161
  # Prepare and execute HttpRequest.
@@ -209,11 +210,53 @@ module Square
209
210
  )
210
211
  end
211
212
 
212
- # Cancels (voids) a payment. If you set `autocomplete` to `false` when
213
- # creating a payment,
214
- # you can cancel the payment using this endpoint.
215
- # @param [String] payment_id Required parameter: The `payment_id`
216
- # identifying the payment to be canceled.
213
+ # Updates a payment with the APPROVED status.
214
+ # You can update the `amount_money` and `tip_money` using this endpoint.
215
+ # @param [String] payment_id Required parameter: The ID of the payment to
216
+ # update.
217
+ # @param [UpdatePaymentRequest] body Required parameter: An object
218
+ # containing the fields to POST for the request. See the corresponding
219
+ # object definition for field details.
220
+ # @return [UpdatePaymentResponse Hash] response from the API call
221
+ def update_payment(payment_id:,
222
+ body:)
223
+ # Prepare query url.
224
+ _query_builder = config.get_base_uri
225
+ _query_builder << '/v2/payments/{payment_id}'
226
+ _query_builder = APIHelper.append_url_with_template_parameters(
227
+ _query_builder,
228
+ 'payment_id' => { 'value' => payment_id, 'encode' => true }
229
+ )
230
+ _query_url = APIHelper.clean_url _query_builder
231
+
232
+ # Prepare headers.
233
+ _headers = {
234
+ 'accept' => 'application/json',
235
+ 'Content-Type' => 'application/json'
236
+ }
237
+
238
+ # Prepare and execute HttpRequest.
239
+ _request = config.http_client.put(
240
+ _query_url,
241
+ headers: _headers,
242
+ parameters: body.to_json
243
+ )
244
+ OAuth2.apply(config, _request)
245
+ _response = execute_request(_request)
246
+
247
+ # Return appropriate response type.
248
+ decoded = APIHelper.json_deserialize(_response.raw_body)
249
+ _errors = APIHelper.map_response(decoded, ['errors'])
250
+ ApiResponse.new(
251
+ _response, data: decoded, errors: _errors
252
+ )
253
+ end
254
+
255
+ # Cancels (voids) a payment. You can use this endpoint to cancel a payment
256
+ # with
257
+ # the APPROVED `status`.
258
+ # @param [String] payment_id Required parameter: The ID of the payment to
259
+ # cancel.
217
260
  # @return [CancelPaymentResponse Hash] response from the API call
218
261
  def cancel_payment(payment_id:)
219
262
  # Prepare query url.
@@ -249,13 +292,16 @@ module Square
249
292
  # Completes (captures) a payment.
250
293
  # By default, payments are set to complete immediately after they are
251
294
  # created.
252
- # If you set `autocomplete` to `false` when creating a payment, you can
253
- # complete (capture)
254
- # the payment using this endpoint.
295
+ # You can use this endpoint to complete a payment with the APPROVED
296
+ # `status`.
255
297
  # @param [String] payment_id Required parameter: The unique ID identifying
256
298
  # the payment to be completed.
299
+ # @param [CompletePaymentRequest] body Required parameter: An object
300
+ # containing the fields to POST for the request. See the corresponding
301
+ # object definition for field details.
257
302
  # @return [CompletePaymentResponse Hash] response from the API call
258
- def complete_payment(payment_id:)
303
+ def complete_payment(payment_id:,
304
+ body:)
259
305
  # Prepare query url.
260
306
  _query_builder = config.get_base_uri
261
307
  _query_builder << '/v2/payments/{payment_id}/complete'
@@ -267,13 +313,15 @@ module Square
267
313
 
268
314
  # Prepare headers.
269
315
  _headers = {
270
- 'accept' => 'application/json'
316
+ 'accept' => 'application/json',
317
+ 'Content-Type' => 'application/json'
271
318
  }
272
319
 
273
320
  # Prepare and execute HttpRequest.
274
321
  _request = config.http_client.post(
275
322
  _query_url,
276
- headers: _headers
323
+ headers: _headers,
324
+ parameters: body.to_json
277
325
  )
278
326
  OAuth2.apply(config, _request)
279
327
  _response = execute_request(_request)
@@ -6,6 +6,9 @@ module Square
6
6
  end
7
7
 
8
8
  # Retrieves a list of refunds for the account making the request.
9
+ # Results are eventually consistent, and new refunds or changes to refunds
10
+ # might take several
11
+ # seconds to appear.
9
12
  # The maximum results per page is 100.
10
13
  # @param [String] begin_time Optional parameter: The timestamp for the
11
14
  # beginning of the requested reporting period, in RFC 3339 format. Default:
@@ -26,12 +29,15 @@ module Square
26
29
  # associated with the seller.
27
30
  # @param [String] status Optional parameter: If provided, only refunds with
28
31
  # the given status are returned. For a list of refund status values, see
29
- # [PaymentRefund](#type-paymentrefund). Default: If omitted, refunds are
32
+ # [PaymentRefund]($m/PaymentRefund). Default: If omitted, refunds are
30
33
  # returned regardless of their status.
31
- # @param [String] source_type Optional parameter: If provided, only refunds
32
- # with the given source type are returned. - `CARD` - List refunds only for
33
- # payments where `CARD` was specified as the payment source. Default: If
34
- # 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.
35
41
  # @param [Integer] limit Optional parameter: The maximum number of results
36
42
  # to be returned in a single page. It is possible to receive fewer results
37
43
  # than the specified limit on a given page. If the supplied value is
@@ -83,7 +89,12 @@ module Square
83
89
  end
84
90
 
85
91
  # Refunds a payment. You can refund the entire payment amount or a
86
- # portion of it.
92
+ # portion of it. You can use this endpoint to refund a card payment or
93
+ # record a
94
+ # refund of a cash or external payment. For more information, see
95
+ # [Refund
96
+ # Payment](https://developer.squareup.com/docs/payments-api/refund-payments)
97
+ # .
87
98
  # @param [RefundPaymentRequest] body Required parameter: An object
88
99
  # containing the fields to POST for the request. See the corresponding
89
100
  # object definition for field details.
@@ -97,7 +108,7 @@ module Square
97
108
  # Prepare headers.
98
109
  _headers = {
99
110
  'accept' => 'application/json',
100
- 'content-type' => 'application/json; charset=utf-8'
111
+ 'Content-Type' => 'application/json'
101
112
  }
102
113
 
103
114
  # Prepare and execute HttpRequest.
@@ -0,0 +1,43 @@
1
+ module Square
2
+ # SitesApi
3
+ class SitesApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Lists the Square Online sites that belong to a seller. Sites are listed in
9
+ # descending order by the `created_at` date.
10
+ # __Note:__ Square Online APIs are publicly available as part of an early
11
+ # access program. For more information, see [Early access program for Square
12
+ # Online
13
+ # APIs](https://developer.squareup.com/docs/online-api#early-access-program-
14
+ # for-square-online-apis).
15
+ # @return [ListSitesResponse Hash] response from the API call
16
+ def list_sites
17
+ # Prepare query url.
18
+ _query_builder = config.get_base_uri
19
+ _query_builder << '/v2/sites'
20
+ _query_url = APIHelper.clean_url _query_builder
21
+
22
+ # Prepare headers.
23
+ _headers = {
24
+ 'accept' => 'application/json'
25
+ }
26
+
27
+ # Prepare and execute HttpRequest.
28
+ _request = config.http_client.get(
29
+ _query_url,
30
+ headers: _headers
31
+ )
32
+ OAuth2.apply(config, _request)
33
+ _response = execute_request(_request)
34
+
35
+ # Return appropriate response type.
36
+ decoded = APIHelper.json_deserialize(_response.raw_body)
37
+ _errors = APIHelper.map_response(decoded, ['errors'])
38
+ ApiResponse.new(
39
+ _response, data: decoded, errors: _errors
40
+ )
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,146 @@
1
+ module Square
2
+ # SnippetsApi
3
+ class SnippetsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Removes your snippet from a Square Online site.
9
+ # You can call [ListSites]($e/Sites/ListSites) to get the IDs of the sites
10
+ # that belong to a seller.
11
+ # __Note:__ Square Online APIs are publicly available as part of an early
12
+ # access program. For more information, see [Early access program for Square
13
+ # Online
14
+ # APIs](https://developer.squareup.com/docs/online-api#early-access-program-
15
+ # for-square-online-apis).
16
+ # @param [String] site_id Required parameter: The ID of the site that
17
+ # contains the snippet.
18
+ # @return [DeleteSnippetResponse Hash] response from the API call
19
+ def delete_snippet(site_id:)
20
+ # Prepare query url.
21
+ _query_builder = config.get_base_uri
22
+ _query_builder << '/v2/sites/{site_id}/snippet'
23
+ _query_builder = APIHelper.append_url_with_template_parameters(
24
+ _query_builder,
25
+ 'site_id' => { 'value' => site_id, 'encode' => true }
26
+ )
27
+ _query_url = APIHelper.clean_url _query_builder
28
+
29
+ # Prepare headers.
30
+ _headers = {
31
+ 'accept' => 'application/json'
32
+ }
33
+
34
+ # Prepare and execute HttpRequest.
35
+ _request = config.http_client.delete(
36
+ _query_url,
37
+ headers: _headers
38
+ )
39
+ OAuth2.apply(config, _request)
40
+ _response = execute_request(_request)
41
+
42
+ # Return appropriate response type.
43
+ decoded = APIHelper.json_deserialize(_response.raw_body)
44
+ _errors = APIHelper.map_response(decoded, ['errors'])
45
+ ApiResponse.new(
46
+ _response, data: decoded, errors: _errors
47
+ )
48
+ end
49
+
50
+ # Retrieves your snippet from a Square Online site. A site can contain
51
+ # snippets from multiple snippet applications, but you can retrieve only the
52
+ # snippet that was added by your application.
53
+ # You can call [ListSites]($e/Sites/ListSites) to get the IDs of the sites
54
+ # that belong to a seller.
55
+ # __Note:__ Square Online APIs are publicly available as part of an early
56
+ # access program. For more information, see [Early access program for Square
57
+ # Online
58
+ # APIs](https://developer.squareup.com/docs/online-api#early-access-program-
59
+ # for-square-online-apis).
60
+ # @param [String] site_id Required parameter: The ID of the site that
61
+ # contains the snippet.
62
+ # @return [RetrieveSnippetResponse Hash] response from the API call
63
+ def retrieve_snippet(site_id:)
64
+ # Prepare query url.
65
+ _query_builder = config.get_base_uri
66
+ _query_builder << '/v2/sites/{site_id}/snippet'
67
+ _query_builder = APIHelper.append_url_with_template_parameters(
68
+ _query_builder,
69
+ 'site_id' => { 'value' => site_id, 'encode' => true }
70
+ )
71
+ _query_url = APIHelper.clean_url _query_builder
72
+
73
+ # Prepare headers.
74
+ _headers = {
75
+ 'accept' => 'application/json'
76
+ }
77
+
78
+ # Prepare and execute HttpRequest.
79
+ _request = config.http_client.get(
80
+ _query_url,
81
+ headers: _headers
82
+ )
83
+ OAuth2.apply(config, _request)
84
+ _response = execute_request(_request)
85
+
86
+ # Return appropriate response type.
87
+ decoded = APIHelper.json_deserialize(_response.raw_body)
88
+ _errors = APIHelper.map_response(decoded, ['errors'])
89
+ ApiResponse.new(
90
+ _response, data: decoded, errors: _errors
91
+ )
92
+ end
93
+
94
+ # Adds a snippet to a Square Online site or updates the existing snippet on
95
+ # the site.
96
+ # The snippet code is appended to the end of the `head` element on every
97
+ # page of the site, except checkout pages. A snippet application can add one
98
+ # snippet to a given site.
99
+ # You can call [ListSites]($e/Sites/ListSites) to get the IDs of the sites
100
+ # that belong to a seller.
101
+ # __Note:__ Square Online APIs are publicly available as part of an early
102
+ # access program. For more information, see [Early access program for Square
103
+ # Online
104
+ # APIs](https://developer.squareup.com/docs/online-api#early-access-program-
105
+ # for-square-online-apis).
106
+ # @param [String] site_id Required parameter: The ID of the site where you
107
+ # want to add or update the snippet.
108
+ # @param [UpsertSnippetRequest] body Required parameter: An object
109
+ # containing the fields to POST for the request. See the corresponding
110
+ # object definition for field details.
111
+ # @return [UpsertSnippetResponse Hash] response from the API call
112
+ def upsert_snippet(site_id:,
113
+ body:)
114
+ # Prepare query url.
115
+ _query_builder = config.get_base_uri
116
+ _query_builder << '/v2/sites/{site_id}/snippet'
117
+ _query_builder = APIHelper.append_url_with_template_parameters(
118
+ _query_builder,
119
+ 'site_id' => { 'value' => site_id, 'encode' => true }
120
+ )
121
+ _query_url = APIHelper.clean_url _query_builder
122
+
123
+ # Prepare headers.
124
+ _headers = {
125
+ 'accept' => 'application/json',
126
+ 'Content-Type' => 'application/json'
127
+ }
128
+
129
+ # Prepare and execute HttpRequest.
130
+ _request = config.http_client.post(
131
+ _query_url,
132
+ headers: _headers,
133
+ parameters: body.to_json
134
+ )
135
+ OAuth2.apply(config, _request)
136
+ _response = execute_request(_request)
137
+
138
+ # Return appropriate response type.
139
+ decoded = APIHelper.json_deserialize(_response.raw_body)
140
+ _errors = APIHelper.map_response(decoded, ['errors'])
141
+ ApiResponse.new(
142
+ _response, data: decoded, errors: _errors
143
+ )
144
+ end
145
+ end
146
+ end