class PrioTicket::Availabilities

This endpoint should be called in order to get up-to-date availability information for a product with managed capacity. The response will contain the availability for each time slot of the requested product that lies within the specified date range. Time slots will not be omitted in case of no availability. Neither will a NO_AVAILABILITY error be returned in that case. Instead, an explicit vacancy of zero should be expected.

Attributes

from_date_time[RW]
to_date_time[RW]
vacancies[RW]

Public Class Methods

find(distributor_id: nil, ticket_id: nil, from_date: nil, until_date: nil, identifier: nil) click to toggle source

Calls the request type 'availabilities' with given details and retruns an array of Availabilities objects

@param distributor_id Integer @return Array

# File lib/prioticket/availabilities.rb, line 29
def self.find(distributor_id: nil, ticket_id: nil, from_date: nil, until_date: nil, identifier: nil)
  result = PrioTicket::API.call(request_body(ticket_id: ticket_id, distributor_id: distributor_id, from_date: from_date, until_date: until_date), identifier, false)
  list = []
  for a in result["data"]["availabilities"]
    list << Availabilities.new(a)
  end
  return list
end
new(args=nil) click to toggle source
# File lib/prioticket/availabilities.rb, line 16
def initialize(args=nil)
  return if args.nil?
  args.each do |k,v|
    PrioTicket.parse_json_value(self, k,v)
  end
end
request_body(distributor_id: nil, ticket_id: nil, from_date: nil, until_date: nil) click to toggle source

Computes the request body to send to the API endpoint @param distributor_id Integer @param ticket_id Integer @param from_date String @param until_date String

@return Hash

# File lib/prioticket/availabilities.rb, line 46
def self.request_body(distributor_id: nil, ticket_id: nil, from_date: nil, until_date: nil)
  {
    request_type: "availabilities",
    data: {
      distributor_id: distributor_id,
      ticket_id: ticket_id,
      from_date: PrioTicket.parsed_date(from_date),
      until_date: PrioTicket.parsed_date(until_date)
    }
  }
end

Public Instance Methods

reserve() click to toggle source
# File lib/prioticket/availabilities.rb, line 59
def reserve
  # {
  # "request_type": "reserve",
  # "data": {
  # "distributor_id": "501",
  # "ticket_id": "509",
  # "pickup_point_id": "Wyndham_Apollo_hotel",
  # "from_date_time": "2017-11-22T09:00:00+01:00",
  # "to_date_time": "2017-11-23T09:00:00+01:00",
  # "booking_details": [
  # {
  # "ticket_type": "ADULT",
  # "count": 1
  # }
  # ],
  # "distributor_reference": "ABC123456"
  # }
  # }

  # {
  # "response_type": "reserve",
  # "data": {
  # "reservation_reference": "123456789",
  # "distributor_reference": "ABC123456",
  # "booking_status": "Reserved"
  # }
  # }
end