booker_ruby 1.14.0 → 2.0.0

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.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/lib/booker/client.rb +154 -49
  3. data/lib/booker/errors.rb +6 -2
  4. data/lib/booker/model.rb +84 -0
  5. data/lib/booker/v4.1/availability.rb +21 -0
  6. data/lib/booker/v4.1/booking.rb +87 -0
  7. data/lib/booker/v4.1/merchant.rb +55 -0
  8. data/lib/booker/v4/business_client.rb +9 -0
  9. data/lib/booker/v4/business_rest.rb +88 -0
  10. data/lib/booker/v4/common_rest.rb +21 -0
  11. data/lib/booker/v4/customer_client.rb +15 -0
  12. data/lib/booker/v4/customer_rest.rb +15 -0
  13. data/lib/booker/v4/models/address.rb +14 -0
  14. data/lib/booker/v4/models/appointment.rb +79 -0
  15. data/lib/booker/v4/models/appointment_treatment.rb +53 -0
  16. data/lib/booker/v4/models/available_time.rb +15 -0
  17. data/lib/booker/v4/models/business_type.rb +7 -0
  18. data/lib/booker/v4/models/category.rb +7 -0
  19. data/lib/booker/v4/models/class_instance.rb +27 -0
  20. data/lib/booker/v4/models/country.rb +21 -0
  21. data/lib/booker/v4/models/current_price.rb +7 -0
  22. data/lib/booker/v4/models/customer.rb +54 -0
  23. data/lib/booker/v4/models/customer_2.rb +7 -0
  24. data/lib/booker/v4/models/customer_record_type.rb +7 -0
  25. data/lib/booker/v4/models/discount.rb +7 -0
  26. data/lib/booker/v4/models/dynamic_price.rb +13 -0
  27. data/lib/booker/v4/models/employee.rb +12 -0
  28. data/lib/booker/v4/models/feature_settings.rb +9 -0
  29. data/lib/booker/v4/models/final_total.rb +7 -0
  30. data/lib/booker/v4/models/gender.rb +7 -0
  31. data/lib/booker/v4/models/itinerary_time_slot.rb +9 -0
  32. data/lib/booker/v4/models/itinerary_time_slots_list.rb +9 -0
  33. data/lib/booker/v4/models/location.rb +40 -0
  34. data/lib/booker/v4/models/location_day_schedule.rb +20 -0
  35. data/lib/booker/v4/models/model.rb +78 -0
  36. data/lib/booker/v4/models/multi_service_availability_result.rb +9 -0
  37. data/lib/booker/v4/models/notification_settings.rb +14 -0
  38. data/lib/booker/v4/models/online_booking_settings.rb +25 -0
  39. data/lib/booker/v4/models/original_price.rb +7 -0
  40. data/lib/booker/v4/models/payment_method.rb +7 -0
  41. data/lib/booker/v4/models/preferred_staff_gender.rb +7 -0
  42. data/lib/booker/v4/models/price.rb +10 -0
  43. data/lib/booker/v4/models/receipt_display_price.rb +7 -0
  44. data/lib/booker/v4/models/room.rb +14 -0
  45. data/lib/booker/v4/models/shipping_address.rb +7 -0
  46. data/lib/booker/v4/models/source.rb +7 -0
  47. data/lib/booker/v4/models/spa.rb +7 -0
  48. data/lib/booker/v4/models/spa_employee_availability_search_item.rb +13 -0
  49. data/lib/booker/v4/models/status.rb +7 -0
  50. data/lib/booker/v4/models/sub_category.rb +7 -0
  51. data/lib/booker/v4/models/tag_price.rb +7 -0
  52. data/lib/booker/v4/models/teacher.rb +7 -0
  53. data/lib/booker/v4/models/teacher_2.rb +7 -0
  54. data/lib/booker/v4/models/time_zone.rb +10 -0
  55. data/lib/booker/v4/models/treatment.rb +21 -0
  56. data/lib/booker/v4/models/treatment_time_slot.rb +7 -0
  57. data/lib/booker/v4/models/type.rb +10 -0
  58. data/lib/booker/v4/models/user.rb +75 -0
  59. data/lib/booker/v4/request_helper.rb +33 -0
  60. data/lib/booker/v5/availability.rb +45 -0
  61. data/lib/booker/v5/models/availability.rb +18 -0
  62. data/lib/booker/v5/models/availability_result.rb +12 -0
  63. data/lib/booker/v5/models/location_hour.rb +16 -0
  64. data/lib/booker/v5/models/model.rb +9 -0
  65. data/lib/booker/v5/models/service.rb +13 -0
  66. data/lib/booker/v5/models/service_category.rb +11 -0
  67. data/lib/booker/version.rb +1 -1
  68. data/lib/booker_ruby.rb +70 -52
  69. metadata +80 -54
  70. data/lib/booker/business_client.rb +0 -22
  71. data/lib/booker/business_rest.rb +0 -112
  72. data/lib/booker/common_rest.rb +0 -43
  73. data/lib/booker/customer_client.rb +0 -17
  74. data/lib/booker/customer_rest.rb +0 -53
  75. data/lib/booker/models/address.rb +0 -12
  76. data/lib/booker/models/appointment.rb +0 -77
  77. data/lib/booker/models/appointment_treatment.rb +0 -51
  78. data/lib/booker/models/available_time.rb +0 -13
  79. data/lib/booker/models/business_type.rb +0 -5
  80. data/lib/booker/models/category.rb +0 -5
  81. data/lib/booker/models/class_instance.rb +0 -25
  82. data/lib/booker/models/country.rb +0 -19
  83. data/lib/booker/models/current_price.rb +0 -5
  84. data/lib/booker/models/customer.rb +0 -52
  85. data/lib/booker/models/customer_2.rb +0 -5
  86. data/lib/booker/models/customer_record_type.rb +0 -5
  87. data/lib/booker/models/discount.rb +0 -5
  88. data/lib/booker/models/dynamic_price.rb +0 -11
  89. data/lib/booker/models/employee.rb +0 -10
  90. data/lib/booker/models/feature_settings.rb +0 -7
  91. data/lib/booker/models/final_total.rb +0 -5
  92. data/lib/booker/models/gender.rb +0 -5
  93. data/lib/booker/models/itinerary_time_slot.rb +0 -7
  94. data/lib/booker/models/itinerary_time_slots_list.rb +0 -7
  95. data/lib/booker/models/location.rb +0 -38
  96. data/lib/booker/models/location_day_schedule.rb +0 -18
  97. data/lib/booker/models/model.rb +0 -150
  98. data/lib/booker/models/multi_service_availability_result.rb +0 -7
  99. data/lib/booker/models/notification_settings.rb +0 -12
  100. data/lib/booker/models/online_booking_settings.rb +0 -23
  101. data/lib/booker/models/original_price.rb +0 -5
  102. data/lib/booker/models/payment_method.rb +0 -5
  103. data/lib/booker/models/preferred_staff_gender.rb +0 -5
  104. data/lib/booker/models/price.rb +0 -8
  105. data/lib/booker/models/receipt_display_price.rb +0 -5
  106. data/lib/booker/models/room.rb +0 -12
  107. data/lib/booker/models/shipping_address.rb +0 -5
  108. data/lib/booker/models/source.rb +0 -5
  109. data/lib/booker/models/spa.rb +0 -5
  110. data/lib/booker/models/spa_employee_availability_search_item.rb +0 -11
  111. data/lib/booker/models/status.rb +0 -5
  112. data/lib/booker/models/sub_category.rb +0 -5
  113. data/lib/booker/models/tag_price.rb +0 -5
  114. data/lib/booker/models/teacher.rb +0 -5
  115. data/lib/booker/models/teacher_2.rb +0 -5
  116. data/lib/booker/models/time_zone.rb +0 -8
  117. data/lib/booker/models/treatment.rb +0 -19
  118. data/lib/booker/models/treatment_time_slot.rb +0 -5
  119. data/lib/booker/models/type.rb +0 -8
  120. data/lib/booker/models/user.rb +0 -73
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Spa < Location; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class SpaEmployeeAvailabilitySearchItem < Model
5
+ attr_accessor 'AvailableTimes',
6
+ 'Treatment',
7
+ 'FirstAvailableTime',
8
+ 'CurrentPrice',
9
+ 'Spa'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Status < Type; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class SubCategory < Type; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class TagPrice < Price; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Teacher < Employee; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Teacher2 < Employee; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class TimeZone < Model
5
+ attr_accessor 'ID', 'Name', 'StandardName'
6
+ end
7
+ end
8
+ end
9
+ end
10
+
@@ -0,0 +1,21 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Treatment < Model
5
+ attr_accessor 'ID',
6
+ 'AllowCustomersToBookOnline',
7
+ 'Category',
8
+ 'Description',
9
+ 'Name',
10
+ 'Price',
11
+ 'SubCategory',
12
+ 'TotalDuration',
13
+ 'TreatmentDuration',
14
+ 'IsClass',
15
+ 'IsForCouples',
16
+ 'EmployeeIDs',
17
+ 'IsActive'
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class TreatmentTimeSlot < AvailableTime; end
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class Type < Model
5
+ attr_accessor 'ID',
6
+ 'Name'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,75 @@
1
+ module Booker
2
+ module V4
3
+ module Models
4
+ class User < Model
5
+ attr_accessor 'AllowCreateAppointment',
6
+ 'AllowCreateAppointmentsInPast',
7
+ 'AllowEditAppointment',
8
+ 'AllowEditBusyTimeBlock',
9
+ 'AllowEditClass',
10
+ 'AllowViewAllSchedules',
11
+ 'AllowViewAppointments',
12
+ 'AllowViewCreditCardNumber',
13
+ 'AllowViewCustomerInfo',
14
+ 'AllowViewDashBoard',
15
+ 'AllowViewOrders',
16
+ 'Email',
17
+ 'EmployeeID',
18
+ 'FirstName',
19
+ 'ID',
20
+ 'IsAccountManager',
21
+ 'IsAdministrator',
22
+ 'IsAdministratorAdmin',
23
+ 'IsAnyAdmin',
24
+ 'IsBrandReservationist',
25
+ 'IsImplementator',
26
+ 'IsReservationist',
27
+ 'IsReservationistOrTechnician',
28
+ 'IsSuperAdministrator',
29
+ 'IsTechnician',
30
+ 'IsTranslator',
31
+ 'LastName',
32
+ 'RoleNames',
33
+ 'Username',
34
+ 'DateCreated',
35
+ 'AllowOverrideOrderItemPrice',
36
+ 'AllowCancelAppointment',
37
+ 'AllowEditSchedule',
38
+ 'AllowOverrideTax',
39
+ 'AllowOverrideGCSeriesBalance',
40
+ 'AllowCreateEmailCampaigns',
41
+ 'AllowTweetFacebookAsBusiness',
42
+ 'AllowCustomizeColors',
43
+ 'AllowEditGCTemplates',
44
+ 'AllowEditEmailTemplates',
45
+ 'AllowSpecials',
46
+ 'AllowSpecialsShowView',
47
+ 'AllowSpecialsCreate',
48
+ 'AllowSpecialsEdit',
49
+ 'AllowSpecialsDelete',
50
+ 'AllowLoyaltyRewards',
51
+ 'AllowLoyaltyRewardsEdit',
52
+ 'AllowOverrideInventory',
53
+ 'AllowAddProducts',
54
+ 'IsReservationistAndAllowModifyTimeClocks',
55
+ 'AllowOrderRefund',
56
+ 'AllowOrderVoid',
57
+ 'AllowModifySchedule',
58
+ 'AllowCreateEmployeeProfile',
59
+ 'AllowEditEmployeeProfile',
60
+ 'AllowDeleteEmployeeProfile',
61
+ 'AllowCreateUserLogin',
62
+ 'AllowEditUserLogin',
63
+ 'AllowDeleteUserLogin',
64
+ 'AllowEditEmployeeGroupAssignment',
65
+ 'AllowEditEmployeeContractorInfo',
66
+ 'AllowEditEmployeeCompensationBenefits',
67
+ 'AllowEditEmployeeServices',
68
+ 'AllowEditEmployeeRegularSchedule',
69
+ 'AllowEditUserLoginOnly',
70
+ 'LocationID',
71
+ 'BrandID'
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,33 @@
1
+ module Booker
2
+ module V4
3
+ module RequestHelper
4
+ DEFAULT_PAGINATION_PARAMS = {
5
+ UsePaging: true,
6
+ PageSize: Integer(ENV['BOOKER_DEFAULT_PAGE_SIZE'] || 10),
7
+ PageNumber: 1
8
+ }
9
+
10
+ private
11
+
12
+ def build_params(default_params={}, overrides={}, paginated=false)
13
+ default_params.symbolize_keys!
14
+ overrides.symbolize_keys!
15
+ merged = {access_token: access_token}.merge(default_params.merge(overrides))
16
+
17
+ merged.each do |k, v|
18
+ if v.is_a?(Time) || v.is_a?(DateTime)
19
+ merged[k] = Booker::V4::Models::Model.time_to_booker_datetime(v)
20
+ elsif v.is_a?(Date)
21
+ merged[k] = Booker::V4::Models::Model.time_to_booker_datetime(v.in_time_zone)
22
+ end
23
+ end
24
+
25
+ if paginated
26
+ DEFAULT_PAGINATION_PARAMS.merge(merged)
27
+ else
28
+ merged
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ module Booker
2
+ module V5
3
+ class Availability < Booker::Client
4
+ API_METHODS = {
5
+ availability: '/v5/availability/availability'.freeze,
6
+ one_day_availability: '/v5/availability/1day',
7
+ two_day_availability: '/v5/availability/2day'.freeze,
8
+ thirty_day_availability: '/v5/availability/30day'.freeze
9
+ }.freeze
10
+
11
+ def availability(location_ids:, from_date_time:, to_date_time:, include_employees: true)
12
+ get API_METHODS[:availability], {
13
+ locationIds: location_ids,
14
+ fromDateTime: from_date_time,
15
+ toDateTime: to_date_time,
16
+ includeEmployees: include_employees
17
+ }, Booker::V5::Models::AvailabilityResult
18
+ end
19
+
20
+ def one_day_availability(location_id:, from_date_time:, include_employees: true)
21
+ get API_METHODS[:one_day_availability], {
22
+ locationId: location_id,
23
+ fromDateTime: from_date_time,
24
+ includeEmployees: include_employees
25
+ }, Booker::V5::Models::AvailabilityResult
26
+ end
27
+
28
+ def two_day_availability(location_id:, from_date_time:, include_employees: true)
29
+ get API_METHODS[:two_day_availability], {
30
+ locationId: location_id,
31
+ fromDateTime: from_date_time,
32
+ includeEmployees: include_employees
33
+ }, Booker::V5::Models::AvailabilityResult
34
+ end
35
+
36
+ def thirty_day_availability(location_id:, from_date_time:, include_employees: true)
37
+ get API_METHODS[:thirty_day_availability], {
38
+ locationId: location_id,
39
+ fromDateTime: from_date_time,
40
+ includeEmployees: include_employees
41
+ }, Booker::V5::Models::AvailabilityResult
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,18 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class Availability < Model
5
+ attr_accessor 'startDateTime',
6
+ 'endDateTime',
7
+ 'employees'
8
+
9
+ def self.from_hash(hash)
10
+ model = super
11
+ model.startDateTime = Time.parse(model.startDateTime) if model.startDateTime
12
+ model.endDateTime = Time.parse(model.endDateTime) if model.endDateTime
13
+ model
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class AvailabilityResult < Model
5
+ attr_accessor 'locationId',
6
+ 'startTimeInterval',
7
+ 'locationHours',
8
+ 'serviceCategories'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class LocationHour < Model
5
+ attr_accessor 'open', 'close'
6
+
7
+ def self.from_hash(hash)
8
+ model = super
9
+ model.open = Time.parse(model.open) if model.open
10
+ model.close = Time.parse(model.close) if model.close
11
+ model
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class Model < Booker::Model
5
+ CONSTANTIZE_MODULE = Booker::V5::Models
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class Service < Model
5
+ attr_accessor 'serviceId',
6
+ 'serviceName',
7
+ 'duration',
8
+ 'requiresStaff',
9
+ 'availability'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ module Booker
2
+ module V5
3
+ module Models
4
+ class ServiceCategory < Model
5
+ attr_accessor 'serviceCategoryId',
6
+ 'serviceCategoryName',
7
+ 'services'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Booker
2
- VERSION = '1.14.0'
2
+ VERSION = '2.0.0'
3
3
  end
data/lib/booker_ruby.rb CHANGED
@@ -8,6 +8,7 @@ require 'active_support/core_ext/object'
8
8
  require 'active_support/core_ext/numeric/time.rb'
9
9
  require 'active_support/time_with_zone'
10
10
  require 'active_support/time'
11
+ require 'jwt'
11
12
 
12
13
  # Core
13
14
  require 'booker/booker'
@@ -16,81 +17,98 @@ require 'booker/booker'
16
17
  require 'booker/errors'
17
18
 
18
19
  # Models
19
- require 'booker/models/model'
20
+ require 'booker/model'
21
+
22
+ # V4 Models
23
+ require 'booker/v4/models/model'
20
24
 
21
25
  # Types
22
- require 'booker/models/type'
23
- require 'booker/models/country'
24
- require 'booker/models/status'
25
- require 'booker/models/source'
26
- require 'booker/models/business_type'
27
- require 'booker/models/category'
28
- require 'booker/models/sub_category'
29
- require 'booker/models/customer_record_type'
30
- require 'booker/models/gender'
31
- require 'booker/models/preferred_staff_gender'
32
- require 'booker/models/payment_method'
26
+ require 'booker/v4/models/type'
27
+ require 'booker/v4/models/country'
28
+ require 'booker/v4/models/status'
29
+ require 'booker/v4/models/source'
30
+ require 'booker/v4/models/business_type'
31
+ require 'booker/v4/models/category'
32
+ require 'booker/v4/models/sub_category'
33
+ require 'booker/v4/models/customer_record_type'
34
+ require 'booker/v4/models/gender'
35
+ require 'booker/v4/models/preferred_staff_gender'
36
+ require 'booker/v4/models/payment_method'
33
37
 
34
38
  # Addresses
35
- require 'booker/models/address'
36
- require 'booker/models/shipping_address'
39
+ require 'booker/v4/models/address'
40
+ require 'booker/v4/models/shipping_address'
37
41
 
38
42
  # Prices
39
- require 'booker/models/price'
40
- require 'booker/models/final_total'
41
- require 'booker/models/original_price'
42
- require 'booker/models/discount'
43
- require 'booker/models/receipt_display_price'
44
- require 'booker/models/tag_price'
45
- require 'booker/models/current_price'
43
+ require 'booker/v4/models/price'
44
+ require 'booker/v4/models/final_total'
45
+ require 'booker/v4/models/original_price'
46
+ require 'booker/v4/models/discount'
47
+ require 'booker/v4/models/receipt_display_price'
48
+ require 'booker/v4/models/tag_price'
49
+ require 'booker/v4/models/current_price'
46
50
 
47
51
  # Customers
48
- require 'booker/models/customer'
49
- require 'booker/models/customer_2'
52
+ require 'booker/v4/models/customer'
53
+ require 'booker/v4/models/customer_2'
50
54
 
51
55
  # Locations
52
- require 'booker/models/location'
53
- require 'booker/models/spa'
56
+ require 'booker/v4/models/location'
57
+ require 'booker/v4/models/spa'
54
58
 
55
59
  # Employees
56
- require 'booker/models/employee'
57
- require 'booker/models/teacher'
58
- require 'booker/models/teacher_2'
60
+ require 'booker/v4/models/employee'
61
+ require 'booker/v4/models/teacher'
62
+ require 'booker/v4/models/teacher_2'
59
63
 
60
64
  # Other Models
61
- require 'booker/models/time_zone'
62
- require 'booker/models/appointment'
63
- require 'booker/models/appointment_treatment'
64
- require 'booker/models/dynamic_price'
65
- require 'booker/models/room'
66
- require 'booker/models/treatment'
67
- require 'booker/models/spa_employee_availability_search_item'
68
- require 'booker/models/available_time'
69
- require 'booker/models/class_instance'
70
- require 'booker/models/online_booking_settings'
71
- require 'booker/models/user'
72
- require 'booker/models/location_day_schedule'
73
- require 'booker/models/itinerary_time_slots_list'
74
- require 'booker/models/itinerary_time_slot'
75
- require 'booker/models/treatment_time_slot'
76
- require 'booker/models/multi_service_availability_result'
77
- require 'booker/models/notification_settings'
78
- require 'booker/models/feature_settings'
65
+ require 'booker/v4/models/time_zone'
66
+ require 'booker/v4/models/appointment'
67
+ require 'booker/v4/models/appointment_treatment'
68
+ require 'booker/v4/models/dynamic_price'
69
+ require 'booker/v4/models/room'
70
+ require 'booker/v4/models/treatment'
71
+ require 'booker/v4/models/spa_employee_availability_search_item'
72
+ require 'booker/v4/models/available_time'
73
+ require 'booker/v4/models/class_instance'
74
+ require 'booker/v4/models/online_booking_settings'
75
+ require 'booker/v4/models/user'
76
+ require 'booker/v4/models/location_day_schedule'
77
+ require 'booker/v4/models/itinerary_time_slots_list'
78
+ require 'booker/v4/models/itinerary_time_slot'
79
+ require 'booker/v4/models/treatment_time_slot'
80
+ require 'booker/v4/models/multi_service_availability_result'
81
+ require 'booker/v4/models/notification_settings'
82
+ require 'booker/v4/models/feature_settings'
83
+
84
+ # V5 Models
85
+ require 'booker/v5/models/model'
86
+ require 'booker/v5/models/location_hour'
87
+ require 'booker/v5/models/availability'
88
+ require 'booker/v5/models/service'
89
+ require 'booker/v5/models/service_category'
90
+ require 'booker/v5/models/availability_result'
91
+
79
92
 
80
93
  # Base Client
81
94
  require 'booker/client'
82
95
 
83
- # Rest
84
- require 'booker/common_rest'
85
- require 'booker/business_rest'
86
- require 'booker/customer_rest'
96
+ # V4 Rest
97
+ require 'booker/v4/request_helper'
98
+ require 'booker/v4/common_rest'
99
+ require 'booker/v4/business_rest'
100
+ require 'booker/v4/customer_rest'
87
101
 
88
102
  # Token Store
89
103
  require 'booker/generic_token_store'
90
104
 
91
105
  # Client Subclasses
92
- require 'booker/business_client'
93
- require 'booker/customer_client'
106
+ require 'booker/v4/business_client'
107
+ require 'booker/v4/customer_client'
108
+ require 'booker/v4.1/availability'
109
+ require 'booker/v4.1/booking'
110
+ require 'booker/v4.1/merchant'
111
+ require 'booker/v5/availability'
94
112
 
95
113
  # Helpers
96
114
  require 'booker/helpers/logging_helper'