booker_ruby 3.3.10 → 3.3.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/booker/client.rb +7 -5
- data/lib/booker/model.rb +6 -0
- data/lib/booker/v4.1/customer.rb +30 -1
- data/lib/booker/v4/models/available_in_advance_date_unit_type.rb +7 -0
- data/lib/booker/v4/models/deposit_option.rb +9 -0
- data/lib/booker/v4/models/duration_type.rb +7 -0
- data/lib/booker/v4/models/employee_treatment.rb +14 -0
- data/lib/booker/v4/models/flexible_price_increment_type.rb +7 -0
- data/lib/booker/v4/models/price_range.rb +12 -0
- data/lib/booker/v4/models/price_range_scope.rb +10 -0
- data/lib/booker/v4/models/special.rb +46 -0
- data/lib/booker/v4/models/treatment_verified_bookable_online.rb +39 -0
- data/lib/booker/version.rb +1 -1
- data/lib/booker_ruby.rb +26 -17
- metadata +12 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 513901ea61d46fb2627dbf2832aaf50a32c486e6033c8b58aaf89a1c49d37c73
|
4
|
+
data.tar.gz: 99b08afcac63f583be1190f369117bd6c89da59ba3bb3564b7af943737c40173
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf91284325c8308e96b93c5c5caabc61d4c28c62e1bfec94f6f4ec6c32c7c7ce7ce53ec03adbac3a0aea088cec3bdcf8604d616a9ec13fada7267684a56118c1
|
7
|
+
data.tar.gz: 2dcab1cab3814be62ca6c45517d389bed9593ebc58a6181bd548f360d3721f3c4d7e06d89285b9944d21f787a3438df46a60c80c568d8d2febe7126c46160668
|
data/lib/booker/client.rb
CHANGED
@@ -4,7 +4,7 @@ module Booker
|
|
4
4
|
|
5
5
|
attr_accessor :base_url, :auth_base_url, :client_id, :client_secret, :temp_access_token,
|
6
6
|
:temp_access_token_expires_at, :token_store, :token_store_callback_method, :api_subscription_key,
|
7
|
-
:access_token_scope, :refresh_token, :location_id, :auth_with_client_credentials
|
7
|
+
:access_token_scope, :refresh_token, :location_id, :auth_with_client_credentials, :request_timeout
|
8
8
|
|
9
9
|
CREATE_TOKEN_CONTENT_TYPE = 'application/x-www-form-urlencoded'.freeze
|
10
10
|
CLIENT_CREDENTIALS_GRANT_TYPE = 'client_credentials'.freeze
|
@@ -24,9 +24,11 @@ module Booker
|
|
24
24
|
ENV_BASE_URL_KEY = 'BOOKER_API_BASE_URL'.freeze
|
25
25
|
DEFAULT_BASE_URL = 'https://api-staging.booker.com'.freeze
|
26
26
|
DEFAULT_AUTH_BASE_URL = 'https://api-staging.booker.com'
|
27
|
+
DEFAULT_REQUEST_TIMEOUT = 60
|
27
28
|
|
28
29
|
def initialize(options = {})
|
29
30
|
options.each { |key, value| send(:"#{key}=", value) }
|
31
|
+
self.request_timeout ||= DEFAULT_REQUEST_TIMEOUT
|
30
32
|
self.base_url ||= get_base_url
|
31
33
|
self.auth_base_url ||= ENV['BOOKER_API_BASE_URL'] || DEFAULT_AUTH_BASE_URL
|
32
34
|
self.client_id ||= ENV['BOOKER_CLIENT_ID']
|
@@ -280,7 +282,7 @@ module Booker
|
|
280
282
|
'Authorization' => "Bearer #{access_token}",
|
281
283
|
'Ocp-Apim-Subscription-Key' => self.api_subscription_key
|
282
284
|
},
|
283
|
-
timeout:
|
285
|
+
timeout: self.request_timeout
|
284
286
|
}
|
285
287
|
|
286
288
|
options[:body] = body if body.present?
|
@@ -311,10 +313,10 @@ module Booker
|
|
311
313
|
return parsed_response['Results'] unless parsed_response['Results'].nil?
|
312
314
|
|
313
315
|
if booker_model
|
314
|
-
|
315
|
-
return parsed_response[
|
316
|
+
response_results_key = booker_model.response_results_key
|
317
|
+
return parsed_response[response_results_key] unless parsed_response[response_results_key].nil?
|
316
318
|
|
317
|
-
pluralized =
|
319
|
+
pluralized = response_results_key.pluralize
|
318
320
|
return parsed_response[pluralized] unless parsed_response[pluralized].nil?
|
319
321
|
end
|
320
322
|
|
data/lib/booker/model.rb
CHANGED
data/lib/booker/v4.1/customer.rb
CHANGED
@@ -11,10 +11,13 @@ module Booker
|
|
11
11
|
create_appointment: "#{V41_APPOINTMENTS_PREFIX}/create".freeze,
|
12
12
|
create_class_appointment: "#{V41_PREFIX}/class_appointment/create".freeze,
|
13
13
|
employees: "#{V41_PREFIX}/employees".freeze,
|
14
|
+
treatment: "#{V41_PREFIX}/treatment".freeze,
|
14
15
|
treatments: "#{V41_PREFIX}/treatments".freeze,
|
16
|
+
treatments_verified_bookable_online: "#{V41_PREFIX}/treatments/online".freeze,
|
15
17
|
location: "#{V41_PREFIX}/location".freeze,
|
16
18
|
locations: "#{V41_PREFIX}/locations".freeze,
|
17
|
-
class_availability: "#{V41_PREFIX}/availability/class".freeze
|
19
|
+
class_availability: "#{V41_PREFIX}/availability/class".freeze,
|
20
|
+
specials: "#{V41_PREFIX}/specials".freeze
|
18
21
|
}.freeze
|
19
22
|
|
20
23
|
def appointment(id:)
|
@@ -53,6 +56,12 @@ module Booker
|
|
53
56
|
)
|
54
57
|
end
|
55
58
|
|
59
|
+
def treatment(id:, includeEmployeeTreatment: false)
|
60
|
+
get "#{API_METHODS[:treatment]}/#{id}", build_params({
|
61
|
+
includeEmployeeTreatment: includeEmployeeTreatment
|
62
|
+
}), Booker::V4::Models::TreatmentVerifiedBookableOnline
|
63
|
+
end
|
64
|
+
|
56
65
|
def treatments(location_id:, fetch_all: true, params: {})
|
57
66
|
paginated_request(
|
58
67
|
method: :post,
|
@@ -63,6 +72,26 @@ module Booker
|
|
63
72
|
)
|
64
73
|
end
|
65
74
|
|
75
|
+
def treatments_verified_bookable_online(location_id:, fetch_all: true, params: {})
|
76
|
+
paginated_request(
|
77
|
+
method: :post,
|
78
|
+
path: API_METHODS[:treatments_verified_bookable_online],
|
79
|
+
params: build_params({LocationID: location_id}, params, true),
|
80
|
+
model: Booker::V4::Models::TreatmentVerifiedBookableOnline,
|
81
|
+
fetch_all: fetch_all
|
82
|
+
)
|
83
|
+
end
|
84
|
+
|
85
|
+
def specials(location_id:, fetch_all: true, params: {})
|
86
|
+
paginated_request(
|
87
|
+
method: :post,
|
88
|
+
path: API_METHODS[:specials],
|
89
|
+
params: build_params({ LocationID: location_id }, params, true),
|
90
|
+
model: Booker::V4::Models::Special,
|
91
|
+
fetch_all: fetch_all
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
66
95
|
def location(id:)
|
67
96
|
response = get("#{API_METHODS[:location]}/#{id}", build_params)
|
68
97
|
Booker::V4::Models::Location.from_hash(response)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Booker
|
2
|
+
module V4
|
3
|
+
module Models
|
4
|
+
class Special < Model
|
5
|
+
attr_accessor 'ID',
|
6
|
+
'LocationID',
|
7
|
+
'Name',
|
8
|
+
'Description',
|
9
|
+
'CouponCode',
|
10
|
+
'Type',
|
11
|
+
'ShortUrl',
|
12
|
+
'ApplicableStartDate',
|
13
|
+
'ApplicableEndDate',
|
14
|
+
'BookingStartDate',
|
15
|
+
'BookingEndDate',
|
16
|
+
'MaxRedemptions',
|
17
|
+
'TimeOfDayStart',
|
18
|
+
'TimeOfDayEnd',
|
19
|
+
'HasTreatment',
|
20
|
+
'WeekDays',
|
21
|
+
'UsePriceRanges',
|
22
|
+
'PriceRanges',
|
23
|
+
'DiscountType',
|
24
|
+
'AdjustmentType',
|
25
|
+
'DiscountAmount',
|
26
|
+
'CanCustomerDirectBook',
|
27
|
+
'HideOnInvoicesAndReceipts',
|
28
|
+
'PhotoUrl',
|
29
|
+
'UsedRedemptions',
|
30
|
+
'AvailableRedemptions',
|
31
|
+
'HasFreeItems',
|
32
|
+
'PriceRangeScope',
|
33
|
+
'ApplicationItemIDs',
|
34
|
+
'IsExclusiveWithAll',
|
35
|
+
'IsExclusiveWithAny',
|
36
|
+
'CombinationRules',
|
37
|
+
'ApplicableStartDateOffset',
|
38
|
+
'ApplicableEndDateOffset',
|
39
|
+
'BookingStartDateOffset',
|
40
|
+
'BookingEndDateOffset',
|
41
|
+
'TimeOfDayStartOffset',
|
42
|
+
'TimeOfDayEndOffset'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Booker
|
2
|
+
module V4
|
3
|
+
module Models
|
4
|
+
class TreatmentVerifiedBookableOnline < Model
|
5
|
+
attr_accessor 'ID',
|
6
|
+
'AllowCustomersToBookOnline',
|
7
|
+
'AvailableInAdvance',
|
8
|
+
'AvailableInAdvanceDateUnitType',
|
9
|
+
'Category',
|
10
|
+
'ColorCode',
|
11
|
+
'DateCreatedOffset',
|
12
|
+
'DateLastModifiedOffset',
|
13
|
+
'DepositOptions',
|
14
|
+
'Description',
|
15
|
+
'DisplayName',
|
16
|
+
'DoesNotRequireStaff',
|
17
|
+
'DurationType',
|
18
|
+
'EmployeeTreatments',
|
19
|
+
'ImageURL',
|
20
|
+
'IsActive',
|
21
|
+
'IsClass',
|
22
|
+
'IsDeleted',
|
23
|
+
'IsForCouples',
|
24
|
+
'MaxTreatmentDuration',
|
25
|
+
'MinTreatmentDuration',
|
26
|
+
'Name',
|
27
|
+
'Price',
|
28
|
+
'RequiresTwoTechnicians',
|
29
|
+
'SubCategory',
|
30
|
+
'TotalDuration',
|
31
|
+
'TreatmentDuration'
|
32
|
+
|
33
|
+
def self.response_results_key
|
34
|
+
'Treatment'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/booker/version.rb
CHANGED
data/lib/booker_ruby.rb
CHANGED
@@ -19,6 +19,7 @@ require 'booker/errors'
|
|
19
19
|
# Concerns
|
20
20
|
require 'booker/concerns/date_time_concern'
|
21
21
|
require 'booker/request_helper'
|
22
|
+
require 'booker/v4/request_helper'
|
22
23
|
|
23
24
|
# Models
|
24
25
|
require 'booker/model'
|
@@ -27,18 +28,20 @@ require 'booker/model'
|
|
27
28
|
require 'booker/v4/models/model'
|
28
29
|
|
29
30
|
# Types
|
30
|
-
require 'booker/v4/request_helper'
|
31
31
|
require 'booker/v4/models/type'
|
32
|
-
require 'booker/v4/models/
|
33
|
-
require 'booker/v4/models/status'
|
34
|
-
require 'booker/v4/models/source'
|
32
|
+
require 'booker/v4/models/available_in_advance_date_unit_type'
|
35
33
|
require 'booker/v4/models/business_type'
|
36
34
|
require 'booker/v4/models/category'
|
37
|
-
require 'booker/v4/models/
|
35
|
+
require 'booker/v4/models/country'
|
38
36
|
require 'booker/v4/models/customer_record_type'
|
37
|
+
require 'booker/v4/models/duration_type'
|
38
|
+
require 'booker/v4/models/flexible_price_increment_type'
|
39
39
|
require 'booker/v4/models/gender'
|
40
|
-
require 'booker/v4/models/preferred_staff_gender'
|
41
40
|
require 'booker/v4/models/payment_method'
|
41
|
+
require 'booker/v4/models/preferred_staff_gender'
|
42
|
+
require 'booker/v4/models/source'
|
43
|
+
require 'booker/v4/models/status'
|
44
|
+
require 'booker/v4/models/sub_category'
|
42
45
|
|
43
46
|
# Addresses
|
44
47
|
require 'booker/v4/models/address'
|
@@ -70,22 +73,28 @@ require 'booker/v4/models/teacher_2'
|
|
70
73
|
require 'booker/v4/models/time_zone'
|
71
74
|
require 'booker/v4/models/appointment'
|
72
75
|
require 'booker/v4/models/appointment_treatment'
|
73
|
-
require 'booker/v4/models/dynamic_price'
|
74
|
-
require 'booker/v4/models/room'
|
75
|
-
require 'booker/v4/models/order'
|
76
|
-
require 'booker/v4/models/treatment'
|
77
|
-
require 'booker/v4/models/spa_employee_availability_search_item'
|
78
76
|
require 'booker/v4/models/available_time'
|
79
77
|
require 'booker/v4/models/class_instance'
|
80
|
-
require 'booker/v4/models/
|
81
|
-
require 'booker/v4/models/
|
82
|
-
require 'booker/v4/models/
|
83
|
-
require 'booker/v4/models/
|
78
|
+
require 'booker/v4/models/deposit_option'
|
79
|
+
require 'booker/v4/models/dynamic_price'
|
80
|
+
require 'booker/v4/models/employee_treatment'
|
81
|
+
require 'booker/v4/models/feature_settings'
|
84
82
|
require 'booker/v4/models/itinerary_time_slot'
|
85
|
-
require 'booker/v4/models/
|
83
|
+
require 'booker/v4/models/itinerary_time_slots_list'
|
84
|
+
require 'booker/v4/models/location_day_schedule'
|
86
85
|
require 'booker/v4/models/multi_service_availability_result'
|
87
86
|
require 'booker/v4/models/notification_settings'
|
88
|
-
require 'booker/v4/models/
|
87
|
+
require 'booker/v4/models/online_booking_settings'
|
88
|
+
require 'booker/v4/models/order'
|
89
|
+
require 'booker/v4/models/room'
|
90
|
+
require 'booker/v4/models/spa_employee_availability_search_item'
|
91
|
+
require 'booker/v4/models/treatment'
|
92
|
+
require 'booker/v4/models/treatment_time_slot'
|
93
|
+
require 'booker/v4/models/treatment_verified_bookable_online'
|
94
|
+
require 'booker/v4/models/user'
|
95
|
+
require 'booker/v4/models/special'
|
96
|
+
require 'booker/v4/models/price_range'
|
97
|
+
require 'booker/v4/models/price_range_scope'
|
89
98
|
|
90
99
|
# V5 Models
|
91
100
|
require 'booker/v5/models/model'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: booker_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frederick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -163,6 +163,7 @@ files:
|
|
163
163
|
- lib/booker/v4/models/address.rb
|
164
164
|
- lib/booker/v4/models/appointment.rb
|
165
165
|
- lib/booker/v4/models/appointment_treatment.rb
|
166
|
+
- lib/booker/v4/models/available_in_advance_date_unit_type.rb
|
166
167
|
- lib/booker/v4/models/available_time.rb
|
167
168
|
- lib/booker/v4/models/business_type.rb
|
168
169
|
- lib/booker/v4/models/category.rb
|
@@ -172,11 +173,15 @@ files:
|
|
172
173
|
- lib/booker/v4/models/customer.rb
|
173
174
|
- lib/booker/v4/models/customer_2.rb
|
174
175
|
- lib/booker/v4/models/customer_record_type.rb
|
176
|
+
- lib/booker/v4/models/deposit_option.rb
|
175
177
|
- lib/booker/v4/models/discount.rb
|
178
|
+
- lib/booker/v4/models/duration_type.rb
|
176
179
|
- lib/booker/v4/models/dynamic_price.rb
|
177
180
|
- lib/booker/v4/models/employee.rb
|
181
|
+
- lib/booker/v4/models/employee_treatment.rb
|
178
182
|
- lib/booker/v4/models/feature_settings.rb
|
179
183
|
- lib/booker/v4/models/final_total.rb
|
184
|
+
- lib/booker/v4/models/flexible_price_increment_type.rb
|
180
185
|
- lib/booker/v4/models/gender.rb
|
181
186
|
- lib/booker/v4/models/itinerary_time_slot.rb
|
182
187
|
- lib/booker/v4/models/itinerary_time_slots_list.rb
|
@@ -191,12 +196,15 @@ files:
|
|
191
196
|
- lib/booker/v4/models/payment_method.rb
|
192
197
|
- lib/booker/v4/models/preferred_staff_gender.rb
|
193
198
|
- lib/booker/v4/models/price.rb
|
199
|
+
- lib/booker/v4/models/price_range.rb
|
200
|
+
- lib/booker/v4/models/price_range_scope.rb
|
194
201
|
- lib/booker/v4/models/receipt_display_price.rb
|
195
202
|
- lib/booker/v4/models/room.rb
|
196
203
|
- lib/booker/v4/models/shipping_address.rb
|
197
204
|
- lib/booker/v4/models/source.rb
|
198
205
|
- lib/booker/v4/models/spa.rb
|
199
206
|
- lib/booker/v4/models/spa_employee_availability_search_item.rb
|
207
|
+
- lib/booker/v4/models/special.rb
|
200
208
|
- lib/booker/v4/models/status.rb
|
201
209
|
- lib/booker/v4/models/sub_category.rb
|
202
210
|
- lib/booker/v4/models/tag_price.rb
|
@@ -205,6 +213,7 @@ files:
|
|
205
213
|
- lib/booker/v4/models/time_zone.rb
|
206
214
|
- lib/booker/v4/models/treatment.rb
|
207
215
|
- lib/booker/v4/models/treatment_time_slot.rb
|
216
|
+
- lib/booker/v4/models/treatment_verified_bookable_online.rb
|
208
217
|
- lib/booker/v4/models/type.rb
|
209
218
|
- lib/booker/v4/models/user.rb
|
210
219
|
- lib/booker/v4/request_helper.rb
|
@@ -236,8 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
245
|
- !ruby/object:Gem::Version
|
237
246
|
version: '0'
|
238
247
|
requirements: []
|
239
|
-
|
240
|
-
rubygems_version: 2.7.9
|
248
|
+
rubygems_version: 3.0.6
|
241
249
|
signing_key:
|
242
250
|
specification_version: 4
|
243
251
|
summary: Ruby client for the Booker API - https://developers.booker.com
|