Class: Booker::V5::Availability

Inherits:
Client
  • Object
show all
Includes:
RequestHelper
Defined in:
lib/booker/v5/availability.rb

Constant Summary collapse

API_METHODS =
{
  availability: '/v5/availability/availability'.freeze,
  two_day_availability: '/v5/availability/2day'.freeze,
  thirty_day_availability: '/v5/availability/30day'.freeze
}.freeze

Constants included from RequestHelper

RequestHelper::DEFAULT_PAGINATION_PARAMS

Constants inherited from Client

Client::API_GATEWAY_ERRORS, Client::BOOKER_SERVER_TIMEZONE, Client::CLIENT_CREDENTIALS_GRANT_TYPE, Client::CREATE_TOKEN_CONTENT_TYPE, Client::CREATE_TOKEN_PATH, Client::DEFAULT_AUTH_BASE_URL, Client::DEFAULT_BASE_URL, Client::DEFAULT_CONTENT_TYPE, Client::ENV_BASE_URL_KEY, Client::REFRESH_TOKEN_GRANT_TYPE, Client::UPDATE_TOKEN_CONTEXT_PATH, Client::VALID_ACCESS_TOKEN_SCOPES

Instance Attribute Summary

Attributes inherited from Client

#access_token_scope, #api_subscription_key, #auth_base_url, #auth_with_client_credentials, #base_url, #client_id, #client_secret, #location_id, #refresh_token, #temp_access_token, #temp_access_token_expires_at, #token_store, #token_store_callback_method

Instance Method Summary collapse

Methods included from RequestHelper

#build_params

Methods inherited from Client

#access_token, #access_token_response, #delete, #full_url, #get, #get_access_token, #get_base_url, #get_booker_resources, #get_location_access_token, #handle_errors!, #initialize, #paginated_request, #patch, #post, #put, #update_token_store

Constructor Details

This class inherits a constructor from Booker::Client

Instance Method Details

#search(location_ids:, from_date_time:, to_date_time:, include_employees: true, service_id: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/booker/v5/availability.rb', line 12

def search(location_ids:, from_date_time:, to_date_time:, include_employees: true, service_id: nil)
  params = {
    locationIds: location_ids,
    fromDateTime: from_date_time,
    toDateTime: to_date_time,
    includeEmployees: include_employees
  }
  params[:serviceId] = service_id if service_id
  get API_METHODS[:availability], params, Booker::V5::Models::AvailabilityResult
end

#thirty_day(location_id:, from_date_time:, include_employees: true) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/booker/v5/availability.rb', line 31

def thirty_day(location_id:, from_date_time:, include_employees: true)
  get API_METHODS[:thirty_day_availability], {
    locationId: location_id,
    fromDateTime: from_date_time,
    includeEmployees: include_employees
  }, Booker::V5::Models::AvailabilityResult
end

#two_day(location_id:, from_date_time:, include_employees: true) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/booker/v5/availability.rb', line 23

def two_day(location_id:, from_date_time:, include_employees: true)
  get API_METHODS[:two_day_availability], {
    locationId: location_id,
    fromDateTime: from_date_time,
    includeEmployees: include_employees
  }, Booker::V5::Models::AvailabilityResult
end