Module: Booker::V4::BusinessREST
Constant Summary
Constants included from RequestHelper
RequestHelper::DEFAULT_PAGINATION_PARAMS
Instance Method Summary collapse
- #find_appointments_partial(booker_location_id:, start_date:, end_date:, fetch_all: true, options: {}) ⇒ Object
- #find_employees(booker_location_id:, fetch_all: true, options: {}) ⇒ Object
- #find_locations(options: {}) ⇒ Object
- #find_treatments(booker_location_id:, fetch_all: true, options: {}) ⇒ Object
- #get_location_day_schedules(booker_location_id:, params: {}) ⇒ Object
- #get_location_feature_settings(booker_location_id:) ⇒ Object
- #get_location_notification_settings(booker_location_id:) ⇒ Object
- #get_logged_in_user ⇒ Object
- #update_location_notification_settings(booker_location_id:, send_appointment_reminders:) ⇒ Object
Methods included from CommonREST
#confirm_appointment, #get_location, #get_online_booking_settings
Instance Method Details
#find_appointments_partial(booker_location_id:, start_date:, end_date:, fetch_all: true, options: {}) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/booker/v4/business_rest.rb', line 53 def find_appointments_partial(booker_location_id:, start_date:, end_date:, fetch_all: true, options: {}) additional_params = { LocationID: booker_location_id, FromStartDate: start_date.to_date, ToStartDate: end_date.to_date } paginated_request( method: :post, path: '/appointments/partial', params: build_params(additional_params, , true), model: Booker::V4::Models::Appointment, fetch_all: fetch_all ) end |
#find_employees(booker_location_id:, fetch_all: true, options: {}) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/booker/v4/business_rest.rb', line 33 def find_employees(booker_location_id:, fetch_all: true, options: {}) paginated_request( method: :post, path: '/employees', params: build_params({LocationID: booker_location_id}, , true), model: Booker::V4::Models::Employee, fetch_all: fetch_all ) end |
#find_locations(options: {}) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/booker/v4/business_rest.rb', line 24 def find_locations(options: {}) paginated_request( method: :post, path: '/locations', params: build_params({}, , true), model: Booker::V4::Models::Location ) end |
#find_treatments(booker_location_id:, fetch_all: true, options: {}) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/booker/v4/business_rest.rb', line 43 def find_treatments(booker_location_id:, fetch_all: true, options: {}) paginated_request( method: :post, path: '/treatments', params: build_params({LocationID: booker_location_id}, , true), model: Booker::V4::Models::Treatment, fetch_all: fetch_all ) end |
#get_location_day_schedules(booker_location_id:, params: {}) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/booker/v4/business_rest.rb', line 14 def get_location_day_schedules(booker_location_id:, params: {}) # Booker requires fromDate and toDate for JSON API, but does not use them when getDefaultDaySchedule is true # So datetime used for these fields does not matter random_datetime = Booker::V4::Models::Model.time_to_booker_datetime(Time.now) additional_params = {getDefaultDaySchedule: true, fromDate: random_datetime, toDate: random_datetime} response = get("/location/#{booker_location_id}/schedule", build_params(additional_params, params)) response['LocationDaySchedules'].map { |sched| Booker::V4::Models::LocationDaySchedule.from_hash(sched) } end |
#get_location_feature_settings(booker_location_id:) ⇒ Object
82 83 84 85 |
# File 'lib/booker/v4/business_rest.rb', line 82 def get_location_feature_settings(booker_location_id:) response = get "/location/#{booker_location_id}/feature_settings", build_params Booker::V4::Models::FeatureSettings.from_hash response['FeatureSettings'] end |
#get_location_notification_settings(booker_location_id:) ⇒ Object
69 70 71 72 |
# File 'lib/booker/v4/business_rest.rb', line 69 def get_location_notification_settings(booker_location_id:) response = get "/location/#{booker_location_id}/notification_settings", build_params Booker::V4::Models::NotificationSettings.from_hash response['NotificationSettings'] end |
#get_logged_in_user ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/booker/v4/business_rest.rb', line 6 def get_logged_in_user response = get('/user', build_params) result = Booker::V4::Models::User.from_hash(response['User']) result.LocationID = response['LocationID'] result.BrandID = response['BrandID'] result end |
#update_location_notification_settings(booker_location_id:, send_appointment_reminders:) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/booker/v4/business_rest.rb', line 74 def update_location_notification_settings(booker_location_id:, send_appointment_reminders:) put "/location/#{booker_location_id}/notification_settings", build_params({ NotificationSettings: { SendAppointmentReminders: send_appointment_reminders } }) end |