module Booker::CommonREST

Constants

DEFAULT_PAGINATION_PARAMS

Public Instance Methods

confirm_appointment(appointment_id:) click to toggle source
# File lib/booker/common_rest.rb, line 14
def confirm_appointment(appointment_id:)
  put '/appointment/confirm', build_params('ID' => appointment_id), Booker::Models::Appointment
end
get_location(booker_location_id:) click to toggle source
# File lib/booker/common_rest.rb, line 18
def get_location(booker_location_id:)
  response = get("/location/#{booker_location_id}", build_params)
  Booker::Models::Location.from_hash(response)
end
get_online_booking_settings(booker_location_id:) click to toggle source
# File lib/booker/common_rest.rb, line 9
def get_online_booking_settings(booker_location_id:)
  response = get("/location/#{booker_location_id}/online_booking_settings", build_params)
  Booker::Models::OnlineBookingSettings.from_hash(response['OnlineBookingSettings'])
end

Private Instance Methods

build_params(default_params={}, overrides={}, paginated=false) click to toggle source
# File lib/booker/common_rest.rb, line 25
def build_params(default_params={}, overrides={}, paginated=false)
  # merged = default_params.merge(overrides)
  # merged.merge({"access_token" => access_token}) unless merged.has_key?("access_token")
  original = {}
  unless overrides.has_key?(:access_token)
    original[:access_token] = access_token
  end
  merged = original.merge(default_params.merge(overrides))

  merged.each do |k, v|
    if v.is_a?(Time) || v.is_a?(DateTime)
      merged[k] = Booker::Models::Model.time_to_booker_datetime(v)
    elsif v.is_a?(Date)
      merged[k] = Booker::Models::Model.time_to_booker_datetime(v.in_time_zone)
    end
  end

  if paginated
    DEFAULT_PAGINATION_PARAMS.merge(merged)
  else
    merged
  end
end