class LevelTravel::Search::Request

Public Class Methods

actualize(request_id, tour_id:) click to toggle source

@param request_id [String] Request ID from the `enqueue` request @param tour_id [String] Tour ID from the `get_hotel_offers` request

# File lib/level_travel/search/request.rb, line 39
def self.actualize(request_id, tour_id:)
  ::LevelTravel::Request.get('/search/actualize', request_id: request_id, tour_id: tour_id)
end
enqueue(search_params) click to toggle source

@param search_params [LevelTravel::Search::Params] Request params for search

# File lib/level_travel/search/request.rb, line 7
def self.enqueue(search_params)
  ::LevelTravel::Request.get('/search/enqueue', search_params.to_h)
end
get_grouped_hotels(request_id, operator_ids: []) click to toggle source

@param request_id [String] Request ID from the `enqueue` request @param operator_ids [Array<Integer>] Operators' IDs. Succeeded IDs from the result of status request.

# File lib/level_travel/search/request.rb, line 19
def self.get_grouped_hotels(request_id, operator_ids: [])
  params = prepare_params(operator_ids: operator_ids)

  ::LevelTravel::Request.get('/search/get_grouped_hotels', request_id: request_id, **params)
end
get_hotel_offers(request_id, hotel_id:, operator_ids: [], compact: false) click to toggle source

:reek: BooleanParameter :reek: LongParameterList @param request_id [String] Request ID from the `enqueue` request @param hotel_id [Integer] Hotel ID from the `get_grouped_hotels` request @param operator_ids [Array<Integer>] Operators' IDs. Succeeded IDs from the result of status request. @param compact [Boolean] Return tours without additional information if it's true.

# File lib/level_travel/search/request.rb, line 31
def self.get_hotel_offers(request_id, hotel_id:, operator_ids: [], compact: false)
  params = prepare_params(operator_ids: operator_ids, compact: compact)

  ::LevelTravel::Request.get('/search/get_hotel_offers', request_id: request_id, hotel_id: hotel_id, **params)
end
get_offer(request_id, tour_id:, from_package: nil) click to toggle source

@param request_id [String] Request ID from the `enqueue` request @param tour_id [String] Tour ID from the `get_hotel_offers` request @param from_package [Integer] To link previous offer to the current

# File lib/level_travel/search/request.rb, line 46
def self.get_offer(request_id, tour_id:, from_package: nil)
  params = from_package ? { from_package: from_package } : {}
  ::LevelTravel::Request.get('/search/get_offer', request_id: request_id, tour_id: tour_id, **params)
end
status(request_id) click to toggle source

@param request_id [String] Request ID from the `enqueue` request

# File lib/level_travel/search/request.rb, line 12
def self.status(request_id)
  # TODO: return an object like { succeeded: [], failed: [] }
  ::LevelTravel::Request.get('/search/status', request_id: request_id)
end

Private Class Methods

prepare_params(operator_ids:, **other_params) click to toggle source

@param operator_ids [Array<Integer>] Operators' IDs. Succeeded IDs from the result of status request. @param other_params [Hash]

# File lib/level_travel/search/request.rb, line 53
def self.prepare_params(operator_ids:, **other_params)
  params = other_params
  params = params.merge(operator_ids: operator_ids.join(',')) if operator_ids.any?

  params
end