No commit activity in last 3 years
No release in over 3 years
Ruby gem for Anywayanyday API Redirect.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.7
~> 10.0

Runtime

 Project Readme

AnywayanydayApi (Redirect)

Ruby gem for Anywayanyday XML-API (https://www.anywayanyday.com/partners/#commissioner) Redirect.

Installation

Add this line to your application's Gemfile:

gem 'anywayanyday_api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install anywayanyday_api

Usage

Create an initializer in config/initializers:

# config/initializers/anywayanyday_api.rb
Anywayanyday.configure do |config|
  config.host = "http://api.anywayanyday.com/api"
  config.code = "testapic"
  config.currency = 'RUB'
  config.locale = 'RU'
end

where

  • host - Address anywayanyday system, for test "http://api.anywayanyday.com/api"
  • code - Your client id in anywayanyday system, for test "testapic"
  • currency - Display Language Answer: RU, EN.
  • locale - Value of the currency code view: RUB, USD, EUR, CHF, UAH.

And now in your controller you can do something like this:

@api = Anywayanyday.api

Initialization request

To define a search query, you must transfer the parameters of the route, the number of passengers and class of service.

@api.fare_new_request(route: '2610DYRLON2811LONDYR', ad: 1, cn: 0, inf: 0,  sc: 'E')

Options:

  • route - Route containing points of departure, arrival, departure date and month. The route may comprise several sections, each of which is a set of ten consecutive symbols: two characters day of departure with a leading zero; two characters month departure with leading zero; IATA code of the city or airport of departure; IATA code of the city or airport of departure; three characters - IATA code for the city or the airport of arrival.
  • ad - The number of adult passengers. A number from 1 to 6. The default value is 1.
  • cn - The number of children aged 2 to 12 years. A number from 0 to 4. The default value is 0.
  • in - The number of children aged from 2 weeks to 2 years. A number from 0 to 2. The default value is 0.
  • sc - Class service. Accepted values: E (Economy), B (business / first). Default value: E.

Restrictions:

  • The maximum number of route segments - 4.
  • The total number of passengers must not exceed 8.

Details of the request

Getting parts search.

data = @api.fare_request_info
puts [data.ad, data.cn, data.in, data.sc].join(', ')
data.directions.each do |direction|
  puts [direction.route, direction.dc, direction.dp, direction.ac, direction.ap, direction.dd].join(', ')
end

Sample answer:

#<OpenStruct ad="1", cn="0", in="0", sc="E", directions=[#<OpenStruct route="DYRMOW", dc="Россия", dp="Анадырь", ac="Россия", ap="Москва", dd=Mon, 26 Oct 2015>, #<OpenStruct route="MOWDYR", dc="Россия", dp="Москва", ac="Россия", ap="Анадырь", dd=Sun, 29 Nov 2015>]>

Status of the search

Obtaining the status of the search query. The recommended interval request - every 2 seconds. Returns the exit status of the search terms the percentage (0 to 100).

loop do
  break if @api.fare_request_state == 100
  sleep 2
end

Search results

Preparation of the search result. Rates are grouped by the airlines.

@api.fares(s:, vb:, bc1:, dt1:, at1:, da1:, aa1:, ps:, pn:, ct:, pt:)

Required parameters:

  • s - Sorting: Price - the price (default); Time - the time in a way.
  • vb - Method of displaying information on the rate of: false - a short (default) true - detailed

Not required parameters:

  • bc1 - Filter on the number of direct.
  • dt1 - Filter by time of departure: N - night; M - morning; D - day; E - evening.
  • at1 - Filter by time of arrival: N - night; M - morning; D - day; E - evening.
  • da1 - Filter on the departure airport, IATA airport code.
  • aa1 - Filter of the arrival airport, IATA airport code.
  • ps - The size of the search results page (for the method List; recommended to refine the search query one request; pager, can be disabled in the future).
  • pn - Number of the search results page (for the method List; recommended to refine the search query one request; pager, can be disabled in the future).
  • ct - Filter the type of flight: All - all options (default) Direct - only direct flights
  • pt - Type Price: All - the price for all passengers (default value); Adult - the price per adult; Filter options necessarily contain indeks.Indeks determines which section of the route filter is applied.

Sample answer:

#<OpenStruct c="RUB", l="RU", r="66p5ck6aj73153", pt=nil, ct="All", airlines=[#<OpenStruct c="UN", n="Transaero Airlines", fares=[#<OpenStruct id="0", at="57101", avl="true", res="true", mm="false", mmc="", cs="0", sts="unknown", dirs=[#<OpenStruct dep_apt="DYR", arr_apt="DME", sep_tm="D", arr_tm="D", hr="8", min="25", brd_cng="0", flt_num="UN-112">, #<OpenStruct dep_apt="DME", arr_apt="DYR", sep_tm="E", arr_tm="D", hr="8", min="20", brd_cng="0", flt_num="UN-111">]>, #<OpenStruct id="4", at="62645", avl="true", res="true", mm="false", mmc="", cs="0", sts="2", dirs=[#<OpenStruct dep_apt="DYR", arr_apt="DME", sep_tm="D", arr_tm="D", hr="8", min="25", brd_cng="0", flt_num="UN-112">, #<OpenStruct dep_apt="DME", arr_apt="DYR", sep_tm="E", arr_tm="D", hr="8", min="20", brd_cng="0", flt_num="UN-111">]>]>]>

Details of the flight options

Get detailed information on the selected tariff.

@api.fare_detail(f:)

Options:

  • f - Key tariff.

Sample answer:

#<OpenStruct currency="RUB", available="True", r="b77y705842G3df", f="4", v="", can_make_reservation="true", mm="false", mmc="", cs="0", total_amount="62645", need_middle_name="false", min_avail_seats="2", adults="1", children="0", infants="0", airline_code="UN", airline_name="Transaero Airlines", reservation_time_limit=2015-09-29 19:59:00 +1200, a_base="50270", a_taxes="11720", a_total="61990", c_base="0", c_taxes="0", c_total="0", i_base="0", i_taxes="0", i_total="0", dirs=[#<OpenStruct variants=[#<OpenStruct id="0", tt="08:25", legs=[#<OpenStruct sc="E", bc="V", fn="UN-112", ft="08:25", plane_code="763", plane_name="Boeing 767", carrier_code=nil, carrier_name=nil, departure_code="DYR", departure_contry="Россия", departure_city="Анадырь", departure_airport="Анадырь", departure_terminal=nil, departure_date="2015-10-26", departure_time="15:25", departure_day_of_week="Monday", arrival_code="DME", arrival_contry="Россия", arrival_city="Москва", arrival_airport="Домодедово", arrival_terminal=nil, arrival_date="2015-10-26", arrival_time="14:50", arrival_day_of_week="Monday">]>]>, #<OpenStruct variants=[#<OpenStruct id="1", tt="08:20", legs=[#<OpenStruct sc="E", bc="V", fn="UN-111", ft="08:20", plane_code="763", plane_name="Boeing 767", carrier_code=nil, carrier_name=nil, departure_code="DME", departure_contry="Россия", departure_city="Москва", departure_airport="Домодедово", departure_terminal=nil, departure_date="2015-11-29", departure_time="19:05", departure_day_of_week="Sunday", arrival_code="DYR", arrival_contry="Россия", arrival_city="Анадырь", arrival_airport="Анадырь", arrival_terminal=nil, arrival_date="2015-11-30", arrival_time="12:25", arrival_day_of_week="Monday">]>]>]>

Fare rules

Get the right fare. Possibility and conditions of the return and exchange.

@api.fare_rules(f:)

Options:

  • f - Key tariff.

Sample answer:

#<OpenStruct directions=[#<OpenStruct cbd="true", cad="true", rbd="false", rad="false", dep_ctry="Россия", dep_city="Анадырь", dep_apt="Анадырь", arr_ctry="MOW", arr_city="MOW", arr_apt="MOW", rules="RULES TEXT...">, #<OpenStruct cbd="true", cad="true", rbd="false", rad="false", dep_ctry="MOW", dep_city="MOW", dep_apt="MOW", arr_ctry="Россия", arr_city="Анадырь", arr_apt="Анадырь", rules="RULES TEXT...">]

Check availability of flight options

Check availability on selected flights.

@api.confirm_fare(f:, v:)

Options:

  • f - Key tariff.
  • v - Selected options, if there are several options, the version numbers must be separated by a ";".

Sample answer:

#<OpenStruct r="SYM465FV4Dd53f", f="0", confirmed="True", min_avail_seats="1">

Getting a link to create order

Returns the URL to which you want to redirect the buyer if the contract involves design affiliate purchases online anywayanyday.

@api.get_create_order_url(f:, v:)

Options:

  • f - Key tariff.
  • v - Selections; in the case of several options, the version numbers must be separated by a ";".

Sample answer:

https://www.anywayanyday.com/avia/makeorder/2610DYRMOW2911MOWDYRAD1CN0IN0SCE/DYR1525U825N112E1450DME-DME1905U820N111E11225DYR/RUB61761/65BFBE2C5C30811A747A3377458B70748AE63A66624582E7669138CF1543ABA5?RequestId=zHH06NF632Ycd5&FareId=1&SegmentId=0;1&FareConfirmed=False&Language=RU&Currency=RUB

Contributing

  1. Fork it ( https://github.com/gordienko/anywayanyday_api/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request