Class: Gillbus::SearchTrips::Request

Inherits:
BaseRequest show all
Defined in:
lib/gillbus/search_trips.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseRequest

#initialize, #method

Constructor Details

This class inherits a constructor from Gillbus::BaseRequest

Instance Attribute Details

#back_start_date_searchObject

backStartDateSearch (обязательный если roundTrip=true) Дата отправления, на которую будет произведен поиск обратных рейсов.



54
55
56
# File 'lib/gillbus/search_trips.rb', line 54

def back_start_date_search
  @back_start_date_search
end

#connection_idsObject

connectionIds (не обязательный) Список предполагаемых идентификаторов пересадочных пунктов, разделенных “;”. Используется если выбран вид транспорта 8, 9.



16
17
18
# File 'lib/gillbus/search_trips.rb', line 16

def connection_ids
  @connection_ids
end

#end_city_idObject

endCityId ИД пункта прибытия



36
37
38
# File 'lib/gillbus/search_trips.rb', line 36

def end_city_id
  @end_city_id
end

#full_searchObject

fullSearch (не обязательный) Признак полного поиска рейсов, который указывает когда возвращать результат. Если true, то результат будет возвращен тогда, когда будет окончен поиск всех возможных рейсов. Если false, то результат будет возвращен сразу, как только будут найдены первые рейсы.



28
29
30
# File 'lib/gillbus/search_trips.rb', line 28

def full_search
  @full_search
end

#insurance_idObject

Returns the value of attribute insurance_id.



97
98
99
# File 'lib/gillbus/search_trips.rb', line 97

def insurance_id
  @insurance_id
end

#limit_segment_trip_showObject

limitSegmentTripShow (опциональный параметр) Ограничение максимального количества сегментных рейсов. Если ничего не передано или передано число -1, то выдача не ограничена.



50
51
52
# File 'lib/gillbus/search_trips.rb', line 50

def limit_segment_trip_show
  @limit_segment_trip_show
end

#only_brandedObject

onlyBranded Признак отображения в результате поиска только фирменных рейсов. По умолчанию отображаются все рейсы.



89
90
91
# File 'lib/gillbus/search_trips.rb', line 89

def only_branded
  @only_branded
end

#passengersObject

В passengers записывается структура вида [

{birthday: ..., student_ticket:..., student_year:..., isic:... },
{birthday: ..., student_ticket:..., student_year:..., isic:... },

] Далее она преобразуется к формату gillbus методом passengers_data



78
79
80
# File 'lib/gillbus/search_trips.rb', line 78

def passengers
  @passengers
end

#round_tripObject

roundTrip Признак поиска рейсов туда-обратно. По-умолчанию false. Если true, то будут искаться рейсы туда-обратно. Если false, то будут искаться рейсы только в одну сторону.



45
46
47
# File 'lib/gillbus/search_trips.rb', line 45

def round_trip
  @round_trip
end

#selected_modesObject

selectedModes (не обязательный) Вид транспорта, который необходимо искать.

See Also:

  • BaseRequest::MODES


11
12
13
# File 'lib/gillbus/search_trips.rb', line 11

def selected_modes
  @selected_modes
end

#start_city_idObject

startCityId ИД пункта отправления



32
33
34
# File 'lib/gillbus/search_trips.rb', line 32

def start_city_id
  @start_city_id
end

#start_date_searchObject

startDateSearch Дата отправления, на которую будет произведен поиск рейсов.



40
41
42
# File 'lib/gillbus/search_trips.rb', line 40

def start_date_search
  @start_date_search
end

#ticket_countObject

ticketCount Количество оформляемых билетов. От 1 до k.



58
59
60
# File 'lib/gillbus/search_trips.rb', line 58

def ticket_count
  @ticket_count
end

#trip_full_saleObject

tripFullSale (не обязательный) Признак определяющий количество возвращаемых рейсов. Если true, то возвращаются заказные и регулярные рейсы. Если false, то возвращаются только регулярные рейсы.



22
23
24
# File 'lib/gillbus/search_trips.rb', line 22

def trip_full_sale
  @trip_full_sale
end

#trip_optionsObject

tripOptions Признак отображения списка услугрейса. true - в результате будут возвращены услуги рейса. По умолчанию услуги не возвращаются.



95
96
97
# File 'lib/gillbus/search_trips.rb', line 95

def trip_options
  @trip_options
end

#wait_timeoutObject

waitTimeout Время ожидания ответа, секунды. Если параметр установлен и поиск рейсов длится дольше указанного времени, то будет возвращен пустой ответ через указанное время. Параметр игнорируется, при fullSearch = true.



84
85
86
# File 'lib/gillbus/search_trips.rb', line 84

def wait_timeout
  @wait_timeout
end

Instance Method Details

#paramsObject



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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_dataObject

В 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"

}



131
132
133
134
135
# 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

#pathObject



6
# File 'lib/gillbus/search_trips.rb', line 6

def path; '/online2/searchTrips' end