square.rb 6.5.0.20201028 → 9.1.0.20210317

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e89b291628ca9e34dd317c1cabd319b96d3e7861de70eb8e9b1e006f521bd9e7
4
- data.tar.gz: 316cd50188c224693b87df34043991a7cea712cfdc22814d08b90268924bd85b
3
+ metadata.gz: 0073c43aaa6518848223c41ea272fa28f77cf58b9ade77aae705423849a37bb3
4
+ data.tar.gz: 6d1f79d5fd9c6224e3a1b6769faf8c1c7b93b2a98357878a42a816a522d2a0a5
5
5
  SHA512:
6
- metadata.gz: 7d3b58b7592ba99f662b7e6601f9eee48535fa61a5009c159d05a21080e75b5af4f182ba7907e6350830400790fcd802531a62b5130da19392e95e6c8af9322f
7
- data.tar.gz: abf4ab1de91013ea370e77fa7186a2f9436831b2611d6bc574d1c1401c6f2d99676c5984c37a5024f5bbd231799b4d4a599bdc43b00557a213f8191a7039cc65
6
+ metadata.gz: 6d9da7a0178efe277fcacb6ea12c73b4c03aee542edd5ce2791eeda0d97f5e8787d467f1031f260321305c060b0bb59904bab13ecf5218507d2d236c0b5ab945
7
+ data.tar.gz: 54f48e7dd8de672b7eadc9282e4e1dfb41e8c925a60093b450b94d2e26f7e92859f61b59c7730e65b81b1510ff9bf9affa40b28b4e8a35807e811e2a0a816802
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2020 Square, Inc.
1
+ Copyright 2121 Square, Inc.
2
2
  Licensed under the Apache License, Version 2.0 (the "License");
3
3
  you may not use this file except in compliance with the License.
4
4
  You may obtain a copy of the License at
data/README.md CHANGED
@@ -56,6 +56,9 @@ gem 'square.rb'
56
56
  ### Loyalty
57
57
  * [Loyalty]
58
58
 
59
+ ### Bookings
60
+ * [Bookings]
61
+
59
62
  ### Business
60
63
  * [Merchants]
61
64
  * [Locations]
@@ -75,7 +78,6 @@ gem 'square.rb'
75
78
  * [O Auth]
76
79
 
77
80
  ### Deprecated APIs
78
- * [V1 Locations]
79
81
  * [V1 Employees]
80
82
  * [V1 Transactions]
81
83
  * [V1 Items]
@@ -194,6 +196,15 @@ client = Square::Client.new(
194
196
  environment: 'production'
195
197
  )
196
198
  ```
199
+
200
+ - To set a custom environment provide a `custom_url`, and set environment to `custom`:
201
+
202
+ ```ruby
203
+ client = Square::Client.new(
204
+ access_token:'ACCESS TOKEN HERE',
205
+ environment: 'custom',
206
+ custom_url: 'https://your.customdomain.com'
207
+ )
197
208
 
198
209
  ### Get an Instance of an API object and call its methods
199
210
 
@@ -286,33 +297,33 @@ You can also use the Square API to create applications or services that work wit
286
297
  [Square API]: https://squareup.com/developers
287
298
  [sign up for a developer account]: https://squareup.com/signup?v=developers
288
299
  [Client]: doc/client.md
289
- [Devices]: doc/apis/devices.md
290
- [Disputes]: doc/apis/disputes.md
291
- [Terminal]: doc/apis/terminal.md
292
- [Team]: doc/apis/team.md
293
- [Cash Drawers]: doc/apis/cash-drawers.md
294
- [Customer Groups]: doc/apis/customer-groups.md
295
- [Customer Segments]: doc/apis/customer-segments.md
296
- [Bank Accounts]: doc/apis/bank-accounts
297
- [Payments]: doc/apis/payments.md
298
- [Checkout]: doc/apis/checkout.md
299
- [Catalog]: doc/apis/catalog.md
300
- [Customers]: doc/apis/customers.md
301
- [Employees]: doc/apis/employees.md
302
- [Inventory]: doc/apis/inventory.md
303
- [Labor]: doc/apis/labor.md
304
- [Loyalty]: doc/apis/loyalty.md
305
- [Locations]: doc/apis/locations.md
306
- [Merchants]: doc/apis/merchants.md
307
- [Orders]: doc/apis/orders.md
308
- [Invoices]: doc/apis/invoices.md
309
- [Apple Pay]: doc/apis/apple-pay.md
310
- [Refunds]: doc/apis/refunds.md
311
- [Subscriptions]: doc/apis/subscriptions.md
312
- [Mobile Authorization]: doc/apis/mobile-authorization.md
313
- [O Auth]: doc/apis/o-auth.md
314
- [V1 Locations]: doc/apis/v1-locations.md
315
- [V1 Employees]: doc/apis/v1-employees.md
316
- [V1 Transactions]: doc/apis/v1-transactions.md
317
- [V1 Items]: doc/apis/v1-items.md
318
- [Transactions]: doc/apis/transactions.md
300
+ [Devices]: doc/api/devices.md
301
+ [Disputes]: doc/api/disputes.md
302
+ [Terminal]: doc/api/terminal.md
303
+ [Team]: doc/api/team.md
304
+ [Cash Drawers]: doc/api/cash-drawers.md
305
+ [Customer Groups]: doc/api/customer-groups.md
306
+ [Customer Segments]: doc/api/customer-segments.md
307
+ [Bank Accounts]: doc/api/bank-accounts.md
308
+ [Payments]: doc/api/payments.md
309
+ [Checkout]: doc/api/checkout.md
310
+ [Catalog]: doc/api/catalog.md
311
+ [Customers]: doc/api/customers.md
312
+ [Employees]: doc/api/employees.md
313
+ [Inventory]: doc/api/inventory.md
314
+ [Labor]: doc/api/labor.md
315
+ [Loyalty]: doc/api/loyalty.md
316
+ [Bookings]: doc/api/bookings.md
317
+ [Locations]: doc/api/locations.md
318
+ [Merchants]: doc/api/merchants.md
319
+ [Orders]: doc/api/orders.md
320
+ [Invoices]: doc/api/invoices.md
321
+ [Apple Pay]: doc/api/apple-pay.md
322
+ [Refunds]: doc/api/refunds.md
323
+ [Subscriptions]: doc/api/subscriptions.md
324
+ [Mobile Authorization]: doc/api/mobile-authorization.md
325
+ [O Auth]: doc/api/o-auth.md
326
+ [V1 Employees]: doc/api/v1-employees.md
327
+ [V1 Transactions]: doc/api/v1-transactions.md
328
+ [V1 Items]: doc/api/v1-items.md
329
+ [Transactions]: doc/api/transactions.md
data/lib/square.rb CHANGED
@@ -31,12 +31,11 @@ require_relative 'square/configuration.rb'
31
31
  require_relative 'square/api/base_api.rb'
32
32
  require_relative 'square/api/mobile_authorization_api.rb'
33
33
  require_relative 'square/api/o_auth_api.rb'
34
- require_relative 'square/api/v1_locations_api.rb'
35
34
  require_relative 'square/api/v1_employees_api.rb'
36
35
  require_relative 'square/api/v1_transactions_api.rb'
37
- require_relative 'square/api/v1_items_api.rb'
38
36
  require_relative 'square/api/apple_pay_api.rb'
39
37
  require_relative 'square/api/bank_accounts_api.rb'
38
+ require_relative 'square/api/bookings_api.rb'
40
39
  require_relative 'square/api/cash_drawers_api.rb'
41
40
  require_relative 'square/api/catalog_api.rb'
42
41
  require_relative 'square/api/customers_api.rb'
@@ -5,17 +5,18 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Activates a domain for use with Web Apple Pay and Square. A validation
9
- # will be performed on this domain by Apple to ensure is it properly set up
8
+ # Activates a domain for use with Apple Pay on the Web and Square. A
9
+ # validation
10
+ # is performed on this domain by Apple to ensure that it is properly set up
10
11
  # as
11
12
  # an Apple Pay enabled domain.
12
13
  # This endpoint provides an easy way for platform developers to bulk
13
14
  # activate
14
- # Web Apple Pay with Square for merchants using their platform.
15
- # To learn more about Apple Pay on Web see the Apple Pay section in the
16
- # [Square Payment Form
17
- # Walkthrough](https://developer.squareup.com/docs/docs/payment-form/payment
18
- # -form-walkthrough).
15
+ # Apple Pay on the Web with Square for merchants using their platform.
16
+ # To learn more about Web Apple Pay, see
17
+ # [Add the Apple Pay on the Web
18
+ # Button](https://developer.squareup.com/docs/payment-form/add-digital-walle
19
+ # ts/apple-pay).
19
20
  # @param [RegisterDomainRequest] body Required parameter: An object
20
21
  # containing the fields to POST for the request. See the corresponding
21
22
  # object definition for field details.
@@ -10,8 +10,8 @@ module Square
10
10
  # @param [String] cursor Optional parameter: The pagination cursor returned
11
11
  # by a previous call to this endpoint. Use it in the next `ListBankAccounts`
12
12
  # request to retrieve the next set of results. See the
13
- # [Pagination](https://developer.squareup.com/docs/docs/working-with-apis/pa
14
- # gination) guide for more information.
13
+ # [Pagination](https://developer.squareup.com/docs/working-with-apis/paginat
14
+ # ion) guide for more information.
15
15
  # @param [Integer] limit Optional parameter: Upper limit on the number of
16
16
  # bank accounts to return in the response. Currently, 1000 is the largest
17
17
  # supported limit. You can specify a limit of up to 1000 bank accounts.
@@ -60,8 +60,8 @@ module Square
60
60
  # @param [String] v1_bank_account_id Required parameter: Connect V1 ID of
61
61
  # the desired `BankAccount`. For more information, see [Retrieve a bank
62
62
  # account by using an ID issued by V1 Bank Accounts
63
- # API](https://developer.squareup.com/docs/docs/bank-accounts-api#retrieve-a
64
- # -bank-account-by-using-an-id-issued-by-v1-bank-accounts-api).
63
+ # API](https://developer.squareup.com/docs/bank-accounts-api#retrieve-a-bank
64
+ # -account-by-using-an-id-issued-by-v1-bank-accounts-api).
65
65
  # @return [GetBankAccountByV1IdResponse Hash] response from the API call
66
66
  def get_bank_account_by_v1_id(v1_bank_account_id:)
67
67
  # Prepare query url.
@@ -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.5.0.20201028',
11
+ 'user-agent' => 'Square-Ruby-SDK/9.1.0.20210317',
12
12
  'Square-Version' => config.square_version
13
13
  }
14
14
  end
@@ -0,0 +1,308 @@
1
+ module Square
2
+ # BookingsApi
3
+ class BookingsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Creates a booking.
9
+ # @param [CreateBookingRequest] body Required parameter: An object
10
+ # containing the fields to POST for the request. See the corresponding
11
+ # object definition for field details.
12
+ # @return [CreateBookingResponse Hash] response from the API call
13
+ def create_booking(body:)
14
+ # Prepare query url.
15
+ _query_builder = config.get_base_uri
16
+ _query_builder << '/v2/bookings'
17
+ _query_url = APIHelper.clean_url _query_builder
18
+
19
+ # Prepare headers.
20
+ _headers = {
21
+ 'accept' => 'application/json',
22
+ 'content-type' => 'application/json; charset=utf-8'
23
+ }
24
+
25
+ # Prepare and execute HttpRequest.
26
+ _request = config.http_client.post(
27
+ _query_url,
28
+ headers: _headers,
29
+ parameters: body.to_json
30
+ )
31
+ OAuth2.apply(config, _request)
32
+ _response = execute_request(_request)
33
+
34
+ # Return appropriate response type.
35
+ decoded = APIHelper.json_deserialize(_response.raw_body)
36
+ _errors = APIHelper.map_response(decoded, ['errors'])
37
+ ApiResponse.new(
38
+ _response, data: decoded, errors: _errors
39
+ )
40
+ end
41
+
42
+ # Searches for availabilities for booking.
43
+ # @param [SearchAvailabilityRequest] body Required parameter: An object
44
+ # containing the fields to POST for the request. See the corresponding
45
+ # object definition for field details.
46
+ # @return [SearchAvailabilityResponse Hash] response from the API call
47
+ def search_availability(body:)
48
+ # Prepare query url.
49
+ _query_builder = config.get_base_uri
50
+ _query_builder << '/v2/bookings/availability/search'
51
+ _query_url = APIHelper.clean_url _query_builder
52
+
53
+ # Prepare headers.
54
+ _headers = {
55
+ 'accept' => 'application/json',
56
+ 'content-type' => 'application/json; charset=utf-8'
57
+ }
58
+
59
+ # Prepare and execute HttpRequest.
60
+ _request = config.http_client.post(
61
+ _query_url,
62
+ headers: _headers,
63
+ parameters: body.to_json
64
+ )
65
+ OAuth2.apply(config, _request)
66
+ _response = execute_request(_request)
67
+
68
+ # Return appropriate response type.
69
+ decoded = APIHelper.json_deserialize(_response.raw_body)
70
+ _errors = APIHelper.map_response(decoded, ['errors'])
71
+ ApiResponse.new(
72
+ _response, data: decoded, errors: _errors
73
+ )
74
+ end
75
+
76
+ # Retrieves a seller's booking profile.
77
+ # @return [RetrieveBusinessBookingProfileResponse Hash] response from the API call
78
+ def retrieve_business_booking_profile
79
+ # Prepare query url.
80
+ _query_builder = config.get_base_uri
81
+ _query_builder << '/v2/bookings/business-booking-profile'
82
+ _query_url = APIHelper.clean_url _query_builder
83
+
84
+ # Prepare headers.
85
+ _headers = {
86
+ 'accept' => 'application/json'
87
+ }
88
+
89
+ # Prepare and execute HttpRequest.
90
+ _request = config.http_client.get(
91
+ _query_url,
92
+ headers: _headers
93
+ )
94
+ OAuth2.apply(config, _request)
95
+ _response = execute_request(_request)
96
+
97
+ # Return appropriate response type.
98
+ decoded = APIHelper.json_deserialize(_response.raw_body)
99
+ _errors = APIHelper.map_response(decoded, ['errors'])
100
+ ApiResponse.new(
101
+ _response, data: decoded, errors: _errors
102
+ )
103
+ end
104
+
105
+ # Lists booking profiles for team members.
106
+ # @param [Boolean] bookable_only Optional parameter: Indicates whether to
107
+ # include only bookable team members in the returned result (`true`) or not
108
+ # (`false`).
109
+ # @param [Integer] limit Optional parameter: The maximum number of results
110
+ # to return.
111
+ # @param [String] cursor Optional parameter: The cursor for paginating
112
+ # through the results.
113
+ # @param [String] location_id Optional parameter: Indicates whether to
114
+ # include only team members enabled at the given location in the returned
115
+ # result.
116
+ # @return [ListTeamMemberBookingProfilesResponse Hash] response from the API call
117
+ def list_team_member_booking_profiles(bookable_only: false,
118
+ limit: nil,
119
+ cursor: nil,
120
+ location_id: nil)
121
+ # Prepare query url.
122
+ _query_builder = config.get_base_uri
123
+ _query_builder << '/v2/bookings/team-member-booking-profiles'
124
+ _query_builder = APIHelper.append_url_with_query_parameters(
125
+ _query_builder,
126
+ 'bookable_only' => bookable_only,
127
+ 'limit' => limit,
128
+ 'cursor' => cursor,
129
+ 'location_id' => location_id
130
+ )
131
+ _query_url = APIHelper.clean_url _query_builder
132
+
133
+ # Prepare headers.
134
+ _headers = {
135
+ 'accept' => 'application/json'
136
+ }
137
+
138
+ # Prepare and execute HttpRequest.
139
+ _request = config.http_client.get(
140
+ _query_url,
141
+ headers: _headers
142
+ )
143
+ OAuth2.apply(config, _request)
144
+ _response = execute_request(_request)
145
+
146
+ # Return appropriate response type.
147
+ decoded = APIHelper.json_deserialize(_response.raw_body)
148
+ _errors = APIHelper.map_response(decoded, ['errors'])
149
+ ApiResponse.new(
150
+ _response, data: decoded, errors: _errors
151
+ )
152
+ end
153
+
154
+ # Retrieves a team member's booking profile.
155
+ # @param [String] team_member_id Required parameter: The ID of the team
156
+ # member to retrieve.
157
+ # @return [RetrieveTeamMemberBookingProfileResponse Hash] response from the API call
158
+ def retrieve_team_member_booking_profile(team_member_id:)
159
+ # Prepare query url.
160
+ _query_builder = config.get_base_uri
161
+ _query_builder << '/v2/bookings/team-member-booking-profiles/{team_member_id}'
162
+ _query_builder = APIHelper.append_url_with_template_parameters(
163
+ _query_builder,
164
+ 'team_member_id' => { 'value' => team_member_id, 'encode' => true }
165
+ )
166
+ _query_url = APIHelper.clean_url _query_builder
167
+
168
+ # Prepare headers.
169
+ _headers = {
170
+ 'accept' => 'application/json'
171
+ }
172
+
173
+ # Prepare and execute HttpRequest.
174
+ _request = config.http_client.get(
175
+ _query_url,
176
+ headers: _headers
177
+ )
178
+ OAuth2.apply(config, _request)
179
+ _response = execute_request(_request)
180
+
181
+ # Return appropriate response type.
182
+ decoded = APIHelper.json_deserialize(_response.raw_body)
183
+ _errors = APIHelper.map_response(decoded, ['errors'])
184
+ ApiResponse.new(
185
+ _response, data: decoded, errors: _errors
186
+ )
187
+ end
188
+
189
+ # Retrieves a booking.
190
+ # @param [String] booking_id Required parameter: The ID of the
191
+ # [Booking](#type-booking) object representing the to-be-retrieved
192
+ # booking.
193
+ # @return [RetrieveBookingResponse Hash] response from the API call
194
+ def retrieve_booking(booking_id:)
195
+ # Prepare query url.
196
+ _query_builder = config.get_base_uri
197
+ _query_builder << '/v2/bookings/{booking_id}'
198
+ _query_builder = APIHelper.append_url_with_template_parameters(
199
+ _query_builder,
200
+ 'booking_id' => { 'value' => booking_id, 'encode' => true }
201
+ )
202
+ _query_url = APIHelper.clean_url _query_builder
203
+
204
+ # Prepare headers.
205
+ _headers = {
206
+ 'accept' => 'application/json'
207
+ }
208
+
209
+ # Prepare and execute HttpRequest.
210
+ _request = config.http_client.get(
211
+ _query_url,
212
+ headers: _headers
213
+ )
214
+ OAuth2.apply(config, _request)
215
+ _response = execute_request(_request)
216
+
217
+ # Return appropriate response type.
218
+ decoded = APIHelper.json_deserialize(_response.raw_body)
219
+ _errors = APIHelper.map_response(decoded, ['errors'])
220
+ ApiResponse.new(
221
+ _response, data: decoded, errors: _errors
222
+ )
223
+ end
224
+
225
+ # Updates a booking.
226
+ # @param [String] booking_id Required parameter: The ID of the
227
+ # [Booking](#type-booking) object representing the to-be-updated booking.
228
+ # @param [UpdateBookingRequest] body Required parameter: An object
229
+ # containing the fields to POST for the request. See the corresponding
230
+ # object definition for field details.
231
+ # @return [UpdateBookingResponse Hash] response from the API call
232
+ def update_booking(booking_id:,
233
+ body:)
234
+ # Prepare query url.
235
+ _query_builder = config.get_base_uri
236
+ _query_builder << '/v2/bookings/{booking_id}'
237
+ _query_builder = APIHelper.append_url_with_template_parameters(
238
+ _query_builder,
239
+ 'booking_id' => { 'value' => booking_id, 'encode' => true }
240
+ )
241
+ _query_url = APIHelper.clean_url _query_builder
242
+
243
+ # Prepare headers.
244
+ _headers = {
245
+ 'accept' => 'application/json',
246
+ 'content-type' => 'application/json; charset=utf-8'
247
+ }
248
+
249
+ # Prepare and execute HttpRequest.
250
+ _request = config.http_client.put(
251
+ _query_url,
252
+ headers: _headers,
253
+ parameters: body.to_json
254
+ )
255
+ OAuth2.apply(config, _request)
256
+ _response = execute_request(_request)
257
+
258
+ # Return appropriate response type.
259
+ decoded = APIHelper.json_deserialize(_response.raw_body)
260
+ _errors = APIHelper.map_response(decoded, ['errors'])
261
+ ApiResponse.new(
262
+ _response, data: decoded, errors: _errors
263
+ )
264
+ end
265
+
266
+ # Cancels an existing booking.
267
+ # @param [String] booking_id Required parameter: The ID of the
268
+ # [Booking](#type-booking) object representing the to-be-cancelled
269
+ # booking.
270
+ # @param [CancelBookingRequest] body Required parameter: An object
271
+ # containing the fields to POST for the request. See the corresponding
272
+ # object definition for field details.
273
+ # @return [CancelBookingResponse Hash] response from the API call
274
+ def cancel_booking(booking_id:,
275
+ body:)
276
+ # Prepare query url.
277
+ _query_builder = config.get_base_uri
278
+ _query_builder << '/v2/bookings/{booking_id}/cancel'
279
+ _query_builder = APIHelper.append_url_with_template_parameters(
280
+ _query_builder,
281
+ 'booking_id' => { 'value' => booking_id, 'encode' => true }
282
+ )
283
+ _query_url = APIHelper.clean_url _query_builder
284
+
285
+ # Prepare headers.
286
+ _headers = {
287
+ 'accept' => 'application/json',
288
+ 'content-type' => 'application/json; charset=utf-8'
289
+ }
290
+
291
+ # Prepare and execute HttpRequest.
292
+ _request = config.http_client.post(
293
+ _query_url,
294
+ headers: _headers,
295
+ parameters: body.to_json
296
+ )
297
+ OAuth2.apply(config, _request)
298
+ _response = execute_request(_request)
299
+
300
+ # Return appropriate response type.
301
+ decoded = APIHelper.json_deserialize(_response.raw_body)
302
+ _errors = APIHelper.map_response(decoded, ['errors'])
303
+ ApiResponse.new(
304
+ _response, data: decoded, errors: _errors
305
+ )
306
+ end
307
+ end
308
+ end