booker_api 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/lib/booker/booker.rb +5 -0
  3. data/lib/booker/business_client.rb +22 -0
  4. data/lib/booker/business_rest.rb +130 -0
  5. data/lib/booker/client.rb +212 -0
  6. data/lib/booker/common_rest.rb +49 -0
  7. data/lib/booker/config/booker_country_ids_to_iso_codes.yml +269 -0
  8. data/lib/booker/customer_client.rb +17 -0
  9. data/lib/booker/customer_rest.rb +169 -0
  10. data/lib/booker/errors.rb +24 -0
  11. data/lib/booker/generic_token_store.rb +25 -0
  12. data/lib/booker/helpers/active_support_helper.rb +102 -0
  13. data/lib/booker/helpers/logging_helper.rb +11 -0
  14. data/lib/booker/models/address.rb +12 -0
  15. data/lib/booker/models/appointment.rb +77 -0
  16. data/lib/booker/models/appointment_treatment.rb +51 -0
  17. data/lib/booker/models/available_time.rb +13 -0
  18. data/lib/booker/models/business_type.rb +5 -0
  19. data/lib/booker/models/category.rb +5 -0
  20. data/lib/booker/models/class_instance.rb +25 -0
  21. data/lib/booker/models/country.rb +19 -0
  22. data/lib/booker/models/current_price.rb +5 -0
  23. data/lib/booker/models/customer.rb +52 -0
  24. data/lib/booker/models/customer_2.rb +5 -0
  25. data/lib/booker/models/customer_record_type.rb +5 -0
  26. data/lib/booker/models/discount.rb +5 -0
  27. data/lib/booker/models/dynamic_price.rb +11 -0
  28. data/lib/booker/models/employee.rb +10 -0
  29. data/lib/booker/models/feature_settings.rb +7 -0
  30. data/lib/booker/models/final_total.rb +5 -0
  31. data/lib/booker/models/gender.rb +5 -0
  32. data/lib/booker/models/itinerary_time_slot.rb +7 -0
  33. data/lib/booker/models/itinerary_time_slots_list.rb +7 -0
  34. data/lib/booker/models/location.rb +23 -0
  35. data/lib/booker/models/location_day_schedule.rb +18 -0
  36. data/lib/booker/models/model.rb +150 -0
  37. data/lib/booker/models/multi_service_availability_result.rb +7 -0
  38. data/lib/booker/models/notification_settings.rb +12 -0
  39. data/lib/booker/models/online_booking_settings.rb +23 -0
  40. data/lib/booker/models/original_price.rb +5 -0
  41. data/lib/booker/models/payment_method.rb +5 -0
  42. data/lib/booker/models/preferred_staff_gender.rb +5 -0
  43. data/lib/booker/models/price.rb +8 -0
  44. data/lib/booker/models/receipt_display_price.rb +5 -0
  45. data/lib/booker/models/room.rb +12 -0
  46. data/lib/booker/models/shipping_address.rb +5 -0
  47. data/lib/booker/models/source.rb +5 -0
  48. data/lib/booker/models/spa.rb +5 -0
  49. data/lib/booker/models/spa_employee_availability_search_item.rb +11 -0
  50. data/lib/booker/models/status.rb +5 -0
  51. data/lib/booker/models/sub_category.rb +5 -0
  52. data/lib/booker/models/tag_price.rb +5 -0
  53. data/lib/booker/models/teacher.rb +5 -0
  54. data/lib/booker/models/teacher_2.rb +5 -0
  55. data/lib/booker/models/time_zone.rb +8 -0
  56. data/lib/booker/models/treatment.rb +19 -0
  57. data/lib/booker/models/treatment_time_slot.rb +5 -0
  58. data/lib/booker/models/type.rb +8 -0
  59. data/lib/booker/models/user.rb +73 -0
  60. data/lib/booker/version.rb +3 -0
  61. data/lib/booker_api.rb +97 -0
  62. metadata +216 -0
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class OriginalPrice < Price; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class PaymentMethod < Type; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class PreferredStaffGender < Gender; end
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ module Booker
2
+ module Models
3
+ class Price < Model
4
+ attr_accessor 'Amount',
5
+ 'CurrencyCode'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class ReceiptDisplayPrice < Price; end
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ module Booker
2
+ module Models
3
+ class Room < Model
4
+ attr_accessor 'Capacity',
5
+ 'Description',
6
+ 'ID',
7
+ 'LocationID',
8
+ 'Name',
9
+ 'Treatments'
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class ShippingAddress < Address; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class Source < Type; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class Spa < Location; end
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ module Booker
2
+ module Models
3
+ class SpaEmployeeAvailabilitySearchItem < Model
4
+ attr_accessor 'AvailableTimes',
5
+ 'Treatment',
6
+ 'FirstAvailableTime',
7
+ 'CurrentPrice',
8
+ 'Spa'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class Status < Type; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class SubCategory < Type; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class TagPrice < Price; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class Teacher < Employee; end
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class Teacher2 < Employee; end
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ module Booker
2
+ module Models
3
+ class TimeZone < Model
4
+ attr_accessor 'ID', 'Name', 'StandardName'
5
+ end
6
+ end
7
+ end
8
+
@@ -0,0 +1,19 @@
1
+ module Booker
2
+ module Models
3
+ class Treatment < Model
4
+ attr_accessor 'ID',
5
+ 'AllowCustomersToBookOnline',
6
+ 'Category',
7
+ 'Description',
8
+ 'Name',
9
+ 'Price',
10
+ 'SubCategory',
11
+ 'TotalDuration',
12
+ 'TreatmentDuration',
13
+ 'IsClass',
14
+ 'IsForCouples',
15
+ 'EmployeeIDs',
16
+ 'IsActive'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ module Booker
2
+ module Models
3
+ class TreatmentTimeSlot < AvailableTime; end
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ module Booker
2
+ module Models
3
+ class Type < Model
4
+ attr_accessor 'ID',
5
+ 'Name'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,73 @@
1
+ module Booker
2
+ module Models
3
+ class User < Model
4
+ attr_accessor 'AllowCreateAppointment',
5
+ 'AllowCreateAppointmentsInPast',
6
+ 'AllowEditAppointment',
7
+ 'AllowEditBusyTimeBlock',
8
+ 'AllowEditClass',
9
+ 'AllowViewAllSchedules',
10
+ 'AllowViewAppointments',
11
+ 'AllowViewCreditCardNumber',
12
+ 'AllowViewCustomerInfo',
13
+ 'AllowViewDashBoard',
14
+ 'AllowViewOrders',
15
+ 'Email',
16
+ 'EmployeeID',
17
+ 'FirstName',
18
+ 'ID',
19
+ 'IsAccountManager',
20
+ 'IsAdministrator',
21
+ 'IsAdministratorAdmin',
22
+ 'IsAnyAdmin',
23
+ 'IsBrandReservationist',
24
+ 'IsImplementator',
25
+ 'IsReservationist',
26
+ 'IsReservationistOrTechnician',
27
+ 'IsSuperAdministrator',
28
+ 'IsTechnician',
29
+ 'IsTranslator',
30
+ 'LastName',
31
+ 'RoleNames',
32
+ 'Username',
33
+ 'DateCreated',
34
+ 'AllowOverrideOrderItemPrice',
35
+ 'AllowCancelAppointment',
36
+ 'AllowEditSchedule',
37
+ 'AllowOverrideTax',
38
+ 'AllowOverrideGCSeriesBalance',
39
+ 'AllowCreateEmailCampaigns',
40
+ 'AllowTweetFacebookAsBusiness',
41
+ 'AllowCustomizeColors',
42
+ 'AllowEditGCTemplates',
43
+ 'AllowEditEmailTemplates',
44
+ 'AllowSpecials',
45
+ 'AllowSpecialsShowView',
46
+ 'AllowSpecialsCreate',
47
+ 'AllowSpecialsEdit',
48
+ 'AllowSpecialsDelete',
49
+ 'AllowLoyaltyRewards',
50
+ 'AllowLoyaltyRewardsEdit',
51
+ 'AllowOverrideInventory',
52
+ 'AllowAddProducts',
53
+ 'IsReservationistAndAllowModifyTimeClocks',
54
+ 'AllowOrderRefund',
55
+ 'AllowOrderVoid',
56
+ 'AllowModifySchedule',
57
+ 'AllowCreateEmployeeProfile',
58
+ 'AllowEditEmployeeProfile',
59
+ 'AllowDeleteEmployeeProfile',
60
+ 'AllowCreateUserLogin',
61
+ 'AllowEditUserLogin',
62
+ 'AllowDeleteUserLogin',
63
+ 'AllowEditEmployeeGroupAssignment',
64
+ 'AllowEditEmployeeContractorInfo',
65
+ 'AllowEditEmployeeCompensationBenefits',
66
+ 'AllowEditEmployeeServices',
67
+ 'AllowEditEmployeeRegularSchedule',
68
+ 'AllowEditUserLoginOnly',
69
+ 'LocationID',
70
+ 'BrandID'
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,3 @@
1
+ module Booker
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,97 @@
1
+ require 'booker/version'
2
+
3
+ # External Libs
4
+ require 'oj'
5
+ require 'httparty'
6
+ require 'active_support/json'
7
+ require 'active_support/core_ext/object'
8
+ require 'active_support/core_ext/numeric/time.rb'
9
+ require 'active_support/time_with_zone'
10
+ require 'active_support/time'
11
+
12
+ # Core
13
+ require 'booker/booker'
14
+
15
+ # Errors
16
+ require 'booker/errors'
17
+
18
+ # Models
19
+ require 'booker/models/model'
20
+
21
+ # 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'
33
+
34
+ # Addresses
35
+ require 'booker/models/address'
36
+ require 'booker/models/shipping_address'
37
+
38
+ # 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'
46
+
47
+ # Customers
48
+ require 'booker/models/customer'
49
+ require 'booker/models/customer_2'
50
+
51
+ # Locations
52
+ require 'booker/models/location'
53
+ require 'booker/models/spa'
54
+
55
+ # Employees
56
+ require 'booker/models/employee'
57
+ require 'booker/models/teacher'
58
+ require 'booker/models/teacher_2'
59
+
60
+ # 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'
79
+
80
+ # Base Client
81
+ require 'booker/client'
82
+
83
+ # Rest
84
+ require 'booker/common_rest'
85
+ require 'booker/business_rest'
86
+ require 'booker/customer_rest'
87
+
88
+ # Token Store
89
+ require 'booker/generic_token_store'
90
+
91
+ # Client Subclasses
92
+ require 'booker/business_client'
93
+ require 'booker/customer_client'
94
+
95
+ # Helpers
96
+ require 'booker/helpers/logging_helper'
97
+ require 'booker/helpers/active_support_helper'
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: booker_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - AbeCole
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.14'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: oj
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.10'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: shoulda-matchers
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.8.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 2.8.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: timecop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.7.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.7.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: carmen
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.0.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.0.2
125
+ description:
126
+ email:
127
+ - me@abecole.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - lib/booker/booker.rb
133
+ - lib/booker/business_client.rb
134
+ - lib/booker/business_rest.rb
135
+ - lib/booker/client.rb
136
+ - lib/booker/common_rest.rb
137
+ - lib/booker/config/booker_country_ids_to_iso_codes.yml
138
+ - lib/booker/customer_client.rb
139
+ - lib/booker/customer_rest.rb
140
+ - lib/booker/errors.rb
141
+ - lib/booker/generic_token_store.rb
142
+ - lib/booker/helpers/active_support_helper.rb
143
+ - lib/booker/helpers/logging_helper.rb
144
+ - lib/booker/models/address.rb
145
+ - lib/booker/models/appointment.rb
146
+ - lib/booker/models/appointment_treatment.rb
147
+ - lib/booker/models/available_time.rb
148
+ - lib/booker/models/business_type.rb
149
+ - lib/booker/models/category.rb
150
+ - lib/booker/models/class_instance.rb
151
+ - lib/booker/models/country.rb
152
+ - lib/booker/models/current_price.rb
153
+ - lib/booker/models/customer.rb
154
+ - lib/booker/models/customer_2.rb
155
+ - lib/booker/models/customer_record_type.rb
156
+ - lib/booker/models/discount.rb
157
+ - lib/booker/models/dynamic_price.rb
158
+ - lib/booker/models/employee.rb
159
+ - lib/booker/models/feature_settings.rb
160
+ - lib/booker/models/final_total.rb
161
+ - lib/booker/models/gender.rb
162
+ - lib/booker/models/itinerary_time_slot.rb
163
+ - lib/booker/models/itinerary_time_slots_list.rb
164
+ - lib/booker/models/location.rb
165
+ - lib/booker/models/location_day_schedule.rb
166
+ - lib/booker/models/model.rb
167
+ - lib/booker/models/multi_service_availability_result.rb
168
+ - lib/booker/models/notification_settings.rb
169
+ - lib/booker/models/online_booking_settings.rb
170
+ - lib/booker/models/original_price.rb
171
+ - lib/booker/models/payment_method.rb
172
+ - lib/booker/models/preferred_staff_gender.rb
173
+ - lib/booker/models/price.rb
174
+ - lib/booker/models/receipt_display_price.rb
175
+ - lib/booker/models/room.rb
176
+ - lib/booker/models/shipping_address.rb
177
+ - lib/booker/models/source.rb
178
+ - lib/booker/models/spa.rb
179
+ - lib/booker/models/spa_employee_availability_search_item.rb
180
+ - lib/booker/models/status.rb
181
+ - lib/booker/models/sub_category.rb
182
+ - lib/booker/models/tag_price.rb
183
+ - lib/booker/models/teacher.rb
184
+ - lib/booker/models/teacher_2.rb
185
+ - lib/booker/models/time_zone.rb
186
+ - lib/booker/models/treatment.rb
187
+ - lib/booker/models/treatment_time_slot.rb
188
+ - lib/booker/models/type.rb
189
+ - lib/booker/models/user.rb
190
+ - lib/booker/version.rb
191
+ - lib/booker_api.rb
192
+ homepage: https://github.com/AbeCole/booker_api
193
+ licenses:
194
+ - MIT
195
+ metadata: {}
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 2.1.0
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubyforge_project:
212
+ rubygems_version: 2.6.8
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Ruby client for the Booker v4 API - http://apidoc.booker.com
216
+ test_files: []