booker_ruby 3.3.11 → 3.3.16

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 458a09915eaa7ca202b050409c6c4ae2400357a24b6168e21ac7ef5c3f8b4935
4
- data.tar.gz: 6be11a143fed449165b01c679cde30fa7066ad455516d2162387e4f1b59bf19d
3
+ metadata.gz: 04e10c43a13220bb217e1c46dfdc00ef8a3d92b86017e0202f1bdf69093917ed
4
+ data.tar.gz: 449c88b376debb738919c7a578fa371895b3eb86937305ca55a0c8491566d156
5
5
  SHA512:
6
- metadata.gz: 7e6d57a24ae8e06038586f5f6acc9b344cc869a8ad79a00719860d2c196a890f548e6fb164d70465717c4b8fe1b220ff038a08a7a5c4c38f5fc2afda2d082dfe
7
- data.tar.gz: 4ccaa4b8417c90da416cb7050df2098913398106270653376cd4e952c835a2ff0ee1f8ab6f8985f9b227f23e1c629a43625506fee66d863efd51b2de2abf3b6d
6
+ metadata.gz: 7abd012ead3a462a34237958a4b688839c89a813d61b844a8bcbd915f2ae2d1fa8486ec1844b52e7b606ecdb74b97bdc571e8489eb674cee499820a4e2d71448
7
+ data.tar.gz: b07a9cf45f3a9f779d42377864b9b3865354a7ccaa5453a891a308b246f7637a9629b0b56c3b7bd1b016b0756526e68aaf56c70661fda7776c7d48f58b865da3
@@ -313,10 +313,10 @@ module Booker
313
313
  return parsed_response['Results'] unless parsed_response['Results'].nil?
314
314
 
315
315
  if booker_model
316
- model_name = booker_model.to_s.demodulize
317
- return parsed_response[model_name] unless parsed_response[model_name].nil?
316
+ response_results_key = booker_model.response_results_key
317
+ return parsed_response[response_results_key] unless parsed_response[response_results_key].nil?
318
318
 
319
- pluralized = model_name.pluralize
319
+ pluralized = response_results_key.pluralize
320
320
  return parsed_response[pluralized] unless parsed_response[pluralized].nil?
321
321
  end
322
322
 
@@ -67,6 +67,12 @@ module Booker
67
67
  end
68
68
  end
69
69
 
70
+ protected
71
+
72
+ def self.response_results_key
73
+ self.to_s.demodulize
74
+ end
75
+
70
76
  private
71
77
 
72
78
  def hash_list(array)
@@ -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)
@@ -62,6 +62,10 @@ module Booker
62
62
  )
63
63
  end
64
64
 
65
+ def employee(id:, params: {}, model: Booker::V4::Models::Employee)
66
+ get("#{V41_PREFIX}/employee/#{id}", build_params({}, params), model)
67
+ end
68
+
65
69
  def employees(location_id:, fetch_all: true, params: {})
66
70
  paginated_request(
67
71
  method: :post,
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class AvailableInAdvanceDateUnitType < Type; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class DepositOption < Model
5
+ attr_accessor 'Amount', 'AmountType', 'Enabled', 'HasAmountType', 'Percentage'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class DurationType < Type; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class EmployeeTreatment < Model
5
+ attr_accessor 'EmployeeID',
6
+ 'FinishTimeDuration',
7
+ 'ProcessingTimeDuration',
8
+ 'RequestedPrice',
9
+ 'TotalDuration',
10
+ 'TreatmentDuration'
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class FlexiblePriceIncrementType < Type; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class PriceRange < Model
5
+ attr_accessor 'From',
6
+ 'To',
7
+ 'DiscountType',
8
+ 'DiscountAmount'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class PriceRangeScope < Model
5
+ attr_accessor 'ID',
6
+ 'Name'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Booker
2
- VERSION = '3.3.11'
2
+ VERSION = '3.3.16'
3
3
  end
@@ -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/country'
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/sub_category'
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/online_booking_settings'
81
- require 'booker/v4/models/user'
82
- require 'booker/v4/models/location_day_schedule'
83
- require 'booker/v4/models/itinerary_time_slots_list'
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/treatment_time_slot'
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/feature_settings'
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.11
4
+ version: 3.3.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frederick
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-12 00:00:00.000000000 Z
11
+ date: 2020-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.0.2
139
- description:
139
+ description:
140
140
  email:
141
141
  - tech@hirefrederick.com
142
142
  executables: []
@@ -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
@@ -221,7 +230,7 @@ homepage: https://github.com/hirefrederick/booker_ruby
221
230
  licenses:
222
231
  - MIT
223
232
  metadata: {}
224
- post_install_message:
233
+ post_install_message:
225
234
  rdoc_options: []
226
235
  require_paths:
227
236
  - lib
@@ -236,8 +245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
245
  - !ruby/object:Gem::Version
237
246
  version: '0'
238
247
  requirements: []
239
- rubygems_version: 3.0.6
240
- signing_key:
248
+ rubygems_version: 3.1.2
249
+ signing_key:
241
250
  specification_version: 4
242
251
  summary: Ruby client for the Booker API - https://developers.booker.com
243
252
  test_files: []