class Gillbus::SearchTrips::Request
Attributes
backStartDateSearch (обязательный если roundTrip=true) Дата отправления, на которую будет произведен поиск обратных рейсов.
connectionIds (не обязательный) Список предполагаемых идентификаторов пересадочных пунктов, разделенных “;”. Используется если выбран вид транспорта 8, 9.
endCityId ИД пункта прибытия
fullSearch (не обязательный) Признак полного поиска рейсов, который указывает когда возвращать результат. Если true, то результат будет возвращен тогда, когда будет окончен поиск всех возможных рейсов. Если false, то результат будет возвращен сразу, как только будут найдены первые рейсы.
limitSegmentTripShow (опциональный параметр) Ограничение максимального количества сегментных рейсов. Если ничего не передано или передано число -1, то выдача не ограничена.
onlyBranded Признак отображения в результате поиска только фирменных рейсов. По умолчанию отображаются все рейсы.
В passengers записывается структура вида [
{birthday: ..., student_ticket:..., student_year:..., isic:... }, {birthday: ..., student_ticket:..., student_year:..., isic:... },
] Далее она преобразуется к формату gillbus методом passengers_data
roundTrip Признак поиска рейсов туда-обратно. По-умолчанию false. Если true, то будут искаться рейсы туда-обратно. Если false, то будут искаться рейсы только в одну сторону.
selectedModes (не обязательный) Вид транспорта, который необходимо искать. @see Gillbus::BaseRequest::MODES
startCityId ИД пункта отправления
startDateSearch Дата отправления, на которую будет произведен поиск рейсов.
ticketCount Количество оформляемых билетов. От 1 до k.
tripFullSale (не обязательный) Признак определяющий количество возвращаемых рейсов. Если true, то возвращаются заказные и регулярные рейсы. Если false, то возвращаются только регулярные рейсы.
tripOptions Признак отображения списка услугрейса. true - в результате будут возвращены услуги рейса. По умолчанию услуги не возвращаются.
waitTimeout Время ожидания ответа, секунды. Если параметр установлен и поиск рейсов длится дольше указанного времени, то будет возвращен пустой ответ через указанное время. Параметр игнорируется, при fullSearch = true.
Public Instance Methods
# File lib/gillbus/search_trips.rb, line 99 def params compact( selectedModes: modes(selected_modes), connectionIds: list(connection_ids), tripFullSale: bool(trip_full_sale), fullSearch: bool(full_search), startCityId: start_city_id, endCityId: end_city_id, startDateSearch: date(start_date_search), roundTrip: bool(round_trip), limitSegmentTripShow: limit_segment_trip_show, backStartDateSearch: date(back_start_date_search), ticketCount: ticket_count, waitTimeout: wait_timeout, onlyBranded: bool(only_branded), tripOptions: bool(trip_options), insuranceId: insurance_id, **passengers_data, ) end
В passengers_data
преобразуем passengers к виду для передачи в gillbus:
{ :passenger0birthday=>"01.01.1990", :passenger0studentTicket=>"STUDENTTICKET#1", :passenger0studentYear=>1, :passenger0ISIC=>"ISIC#1", :passenger1birthday=>"02.02.1990", :passenger1studentTicket=>"STUDENTTICKET#2", :passenger1studentYear=>2, :passenger1ISIC=>"ISIC#2"
}
# File lib/gillbus/search_trips.rb, line 131 def passengers_data (passengers || []).map.with_index do |p, i| PassengerDiscount.wrap(p).params("passenger#{i}") end.reduce({}, :merge) end
# File lib/gillbus/search_trips.rb, line 6 def path; '/online2/searchTrips' end