amadeus 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6de12964b5fc9ba2acc621f7c6cba612176f5a510d762c176a20bbaff97b696c
4
- data.tar.gz: 7feadab2cb09cfcfb400a68d5b0e3574d7e26704cbf3b110675578116eb5bee1
3
+ metadata.gz: daa2f88d0dd02caa16558d86e65df76459220e0e9cdc9f12c4f3345e29bb4be2
4
+ data.tar.gz: 6a8c25052107c18810dd9b7d0a22bc2fc489828e88b24aab0f842937794dd43b
5
5
  SHA512:
6
- metadata.gz: eda4f4a0e74f46ab1ff6a7fd50943c98f25f3ab7cb09bfb2f9b9545fd36f906c658830ef38a1a3c8ce9129900226a9e303692156f3e12020effe5cc8499b8184
7
- data.tar.gz: 335ede21e566eaa2d136c91f5a0408c9d22dbb53a8af7df05312645e0d3da3f4fa039ba65ec38b01e30d445c7861c8280dd438713476447de12c7abe8bcb27a8
6
+ metadata.gz: ce3a0e248e96a067e56172a0fda8a6b614c3dde2e61905130e5ccd86658e96f1e28786b686171d5447bcc1e46e137fb87e6c93c11ec74c132f31233de5471def
7
+ data.tar.gz: 72dd837abaee061718587382bd0a81cdf67fd1f6545be39c45d76ed8803f0cffa55bfcba93fe4f4462ad9872d21b1f9d2c1609eeca3d7f3e6529424e0b16c73d
@@ -1,4 +1,11 @@
1
1
  # Changelog
2
+ ## 5.0.0 - 2020-05-14
3
+ Release of the Flight Offers Search API.
4
+
5
+ Add support for the Flight Choice Prediction v2.
6
+
7
+ Decommission of the Flight Low-fare Search and Flight Choice Prediction v1.
8
+
2
9
  ## 4.0.0 - 2020-02-12
3
10
  Release of the [Hotel Booking API](https://developers.amadeus.com/self-service/category/hotel/api-doc/hotel-booking)
4
11
 
data/README.md CHANGED
@@ -180,12 +180,15 @@ amadeus.shopping.flight_destinations.get(origin: 'MAD')
180
180
  # Flight Cheapest Date Search
181
181
  amadeus.shopping.flight_dates.get(origin: 'MAD', destination: 'MUC')
182
182
 
183
- # Flight Low-fare Search
184
- amadeus.shopping.flight_offers.get(origin: 'NYC', destination: 'MAD', departureDate: '2020-08-01')
183
+ # Flight Offers Search
184
+ amadeus.shopping.flight_offers_search.get(originLocationCode: 'NYC', destinationLocationCode: 'MAD', departureDate: '2020-10-01', adults: 1)
185
185
 
186
- # Flight Choice Prediction / Be careful, this example combines 2 API calls: 1. Flight Low-fare Search then Flight Choice Prediction
187
- amadeus.shopping.flight_offers.prediction.post(amadeus.shopping.flight_offers.get(origin: 'NYC', destination: 'MAD', departureDate: '2020-11-01').body)
186
+ # Flight Choice Prediction / Be careful, this example combines 2 API calls: 1. Flight Offers Search then Flight Choice Prediction
187
+ flight_offers = amadeus.shopping.flight_offers_search.get(originLocationCode: 'NYC', destinationLocationCode: 'MAD', departureDate: '2020-10-01', adults: 1, max: 1).body
188
+ amadeus.shopping.flight_offers_search.prediction.post(flight_offers)
188
189
 
190
+ # Flight Delay Prediction
191
+ amadeus.travel.predictions.flight_delay.get(originLocationCod: 'NCE', destinationLocationCod: 'IST', departureDat: '2020-08-01', departureTim: '18:20:00', arrivalDat: '2020-08-01', arrivalTim: '22:15:00', aircraftCod: '321', carrierCod: 'TK', flightNumber: '1816', duration: 'PT31H10M')
189
192
  # Flight Check-in Links
190
193
  amadeus.reference_data.urls.checkin_links.get(airlineCode: 'BA')
191
194
 
@@ -238,6 +241,12 @@ amadeus.e_reputation.hotel_sentiments.get(hotelIds: 'SJNYCAJA,TELONMFS')
238
241
  amadeus.reference_data.locations.points_of_interest.get(latitude: 41.397158, longitude: 2.160873)
239
242
  # What are the popular places in Barcelona? (based on a square)
240
243
  amadeus.reference_data.locations.points_of_interest.by_square.get(north: 41.397158, west: 2.160873, south: 41.394582, east: 2.177181)
244
+
245
+ # Airport On-Time Performance
246
+ amadeus.airport.predictions.on_time.get(airportCode: 'JFK', date: '2020-08-01')
247
+
248
+ # Trip Purpose Prediction
249
+ amadeus.travel.predictions.trip_purpose.get(originLocationCode: 'ATH', destinationLocationCode: 'MAD', departureDate: '2020-08-01', returnDate: '2020-08-12', searchDate: '2020-06-11')
241
250
  ```
242
251
  ## Development & Contributing
243
252
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'amadeus/version'
@@ -24,19 +26,19 @@ Gem::Specification.new do |spec|
24
26
  spec.bindir = 'exe'
25
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
28
  spec.require_paths = ['lib']
27
- spec.required_ruby_version = '>= 2.2.0'
29
+ spec.required_ruby_version = '>= 2.4.0'
28
30
 
29
31
  spec.add_development_dependency 'awesome_print', '~> 1.8'
30
32
  spec.add_development_dependency 'bundler', '~> 2.1.2'
31
- spec.add_development_dependency 'guard', '~> 2.14'
33
+ spec.add_development_dependency 'guard', '~> 2.16'
32
34
  spec.add_development_dependency 'guard-rake', '~> 1.0'
33
35
  spec.add_development_dependency 'guard-yard', '~> 2.2'
34
- spec.add_development_dependency 'rake', '~> 12.3'
36
+ spec.add_development_dependency 'rake', '~> 12.3.1'
35
37
  spec.add_development_dependency 'rb-readline', '~> 0.5.5'
36
- spec.add_development_dependency 'rspec', '~> 3.7'
37
- spec.add_development_dependency 'rubocop', '0.59'
38
- spec.add_development_dependency 'simplecov', '~> 0.15'
39
- spec.add_development_dependency 'vcr', '~> 4.0'
40
- spec.add_development_dependency 'webmock', '~> 3.3'
41
- spec.add_development_dependency 'yard', '~> 0.9.12'
38
+ spec.add_development_dependency 'rspec', '~> 3.9'
39
+ spec.add_development_dependency 'rubocop', '0.79'
40
+ spec.add_development_dependency 'simplecov', '~> 0.18'
41
+ spec.add_development_dependency 'vcr', '~> 5.1'
42
+ spec.add_development_dependency 'webmock', '~> 3.8'
43
+ spec.add_development_dependency 'yard', '~> 0.9.24'
42
44
  end
@@ -14,7 +14,11 @@ require 'amadeus/namespaces/shopping'
14
14
  require 'amadeus/namespaces/reference_data'
15
15
  require 'amadeus/namespaces/e_reputation'
16
16
  require 'amadeus/namespaces/booking'
17
+ require 'amadeus/namespaces/airport'
18
+ require 'amadeus/namespaces/airport/predictions'
19
+ require 'amadeus/namespaces/airport/predictions/on_time'
17
20
  require 'amadeus/namespaces/e_reputation/hotel_sentiments'
21
+ require 'amadeus/namespaces/booking/hotel_bookings'
18
22
  require 'amadeus/namespaces/reference_data/airlines'
19
23
  require 'amadeus/namespaces/reference_data/urls'
20
24
  require 'amadeus/namespaces/reference_data/urls/checkin_links'
@@ -24,18 +28,20 @@ require 'amadeus/namespaces/reference_data/locations/airports'
24
28
  require 'amadeus/namespaces/reference_data/locations/points_of_interest'
25
29
  require 'amadeus/namespaces/reference_data/locations/points_of_interest/by_square'
26
30
  require 'amadeus/namespaces/shopping/flight_destinations'
27
- require 'amadeus/namespaces/shopping/flight_offers'
28
- require 'amadeus/namespaces/shopping/flight_offers/prediction'
31
+ require 'amadeus/namespaces/shopping/flight_offers_search'
32
+ require 'amadeus/namespaces/shopping/flight_offers_search/prediction'
29
33
  require 'amadeus/namespaces/shopping/flight_dates'
30
34
  require 'amadeus/namespaces/shopping/hotel_offers'
31
35
  require 'amadeus/namespaces/shopping/hotel_offer'
32
36
  require 'amadeus/namespaces/shopping/hotel_offers_by_hotel'
33
37
  require 'amadeus/namespaces/travel/analytics'
38
+ require 'amadeus/namespaces/travel/predictions'
39
+ require 'amadeus/namespaces/travel/predictions/trip_purpose'
40
+ require 'amadeus/namespaces/travel/predictions/flight_delay'
34
41
  require 'amadeus/namespaces/travel/analytics/air_traffic'
35
42
  require 'amadeus/namespaces/travel/analytics/air_traffic/traveled'
36
43
  require 'amadeus/namespaces/travel/analytics/air_traffic/booked'
37
44
  require 'amadeus/namespaces/travel/analytics/air_traffic/busiest_period'
38
- require 'amadeus/namespaces/booking/hotel_bookings'
39
45
 
40
46
  # The namespace for the files used to make API
41
47
  # calls to the Amadeus travel APIs
@@ -3,9 +3,7 @@
3
3
  module Amadeus
4
4
  # A list of directions, as used in Busiest Travel Period
5
5
  module Direction
6
- # Airport
7
- ARRIVING = 'ARRIVING'.freeze
8
- # City
9
- DEPARTING = 'DEPARTING'.freeze
6
+ ARRIVING = 'ARRIVING'
7
+ DEPARTING = 'DEPARTING'
10
8
  end
11
9
  end
@@ -64,11 +64,12 @@ module Amadeus
64
64
 
65
65
  # Determines the longer description, printed after the initial error
66
66
  def long_description
67
- return '' unless response && response.parsed
68
-
69
67
  message = ''
70
- message += error_description if response.result['error_description']
71
- message += errors_description if response.result['errors']
68
+ if response&.parsed
69
+ message += error_description if response.result['error_description']
70
+ message += errors_description if response.result['errors']
71
+ end
72
+
72
73
  message
73
74
  end
74
75
 
@@ -4,9 +4,9 @@ module Amadeus
4
4
  # A list of location types, as used in searching for locations
5
5
  module Location
6
6
  # Airport
7
- AIRPORT = 'AIRPORT'.freeze
7
+ AIRPORT = 'AIRPORT'
8
8
  # City
9
- CITY = 'CITY'.freeze
9
+ CITY = 'CITY'
10
10
  # Any
11
11
  ANY = [AIRPORT, CITY].join(',')
12
12
  end
@@ -25,7 +25,7 @@ module Amadeus
25
25
 
26
26
  # Used by .flatten_keys to add a sub key to a key
27
27
  def append_key(root_key, key)
28
- root_key.nil? ? :"#{key}" : :"#{root_key}[#{key.to_s}]"
28
+ root_key.nil? ? :"#{key}" : :"#{root_key}[#{key}]"
29
29
  end
30
30
  end
31
31
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ # A namespaced client for the
6
+ # +/v1/airport+ endpoints
7
+ #
8
+ # Access via the +Amadeus::Client+ object
9
+ #
10
+ # amadeus = Amadeus::Client.new
11
+ # amadeus.airport
12
+ #
13
+ class Airport < Amadeus::Client::Decorator
14
+ # The namespace for the Ai APIs:
15
+ #
16
+ # @return [Amadeus::Namespaces::Airport::Predictions]
17
+ # @example
18
+ # amadeus.airport.predictions
19
+ #
20
+ def predictions
21
+ Amadeus::Namespaces::Airport::Predictions.new(client)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Airport
6
+ # A namespaced client for the
7
+ # +/v1/airport/predictions+ endpoints
8
+ #
9
+ # Access via the +Amadeus::Client+ object
10
+ #
11
+ # amadeus = Amadeus::Client.new
12
+ # amadeus.airport.predictions
13
+ #
14
+ class Predictions < Amadeus::Client::Decorator
15
+ # The namespace for the Airport-OnTime-Prediction API:
16
+ #
17
+ # @return [Amadeus::Namespaces::Airport::Predictions::OnTime]
18
+ # @example
19
+ # amadeus.airport.predictions.on_time
20
+ #
21
+ def on_time
22
+ Amadeus::Namespaces::Airport::Predictions::OnTime.new(client)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Airport
6
+ class Predictions
7
+ # A namespaced client for the
8
+ # +/v1/airport/predictions/on_time+ endpoints
9
+ #
10
+ # Access via the +Amadeus::Client+ object
11
+ #
12
+ # amadeus = Amadeus::Client.new
13
+ # amadeus.airport.predictions.on_time
14
+ #
15
+ class OnTime < Amadeus::Client::Decorator
16
+ # Returns a prediction on airport performance.
17
+ #
18
+ # @option params [String] :airportCode IATA code of the airport
19
+ # @option params [String] :date date of the prediction, in the future
20
+ # @return [Amadeus::Response] a parsed response
21
+ # @raise [Amadeus::Base] an exception if the call failed
22
+ # @example
23
+ # amadeus.airport.predictions.on_time.get(airportCode: 'JFK', date: '2020-09-01')
24
+ #
25
+ def get(params = {})
26
+ client.get('/v1/airport/predictions/on-time', params)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -67,5 +67,15 @@ module Amadeus
67
67
  def e_reputation
68
68
  EReputation.new(self)
69
69
  end
70
+
71
+ # The namespace for the Airport APIs:
72
+ #
73
+ # @return [Amadeus::Namespaces::Airport]
74
+ # @example Some of the further namespaces available
75
+ # amadeus.airport.predictions
76
+ #
77
+ def airport
78
+ Airport.new(self)
79
+ end
70
80
  end
71
81
  end
@@ -23,12 +23,12 @@ module Amadeus
23
23
 
24
24
  # The namespace for the FlightOffers API:
25
25
  #
26
- # @return [Amadeus::Namespaces::Shopping::FlightOffers]
26
+ # @return [Amadeus::Namespaces::Shopping::FlightOffersSearch]
27
27
  # @example
28
- # amadeus.shopping.flight_offers
28
+ # amadeus.shopping.flight_offers_search
29
29
  #
30
- def flight_offers
31
- Amadeus::Namespaces::Shopping::FlightOffers.new(client)
30
+ def flight_offers_search
31
+ Amadeus::Namespaces::Shopping::FlightOffersSearch.new(client)
32
32
  end
33
33
 
34
34
  # The namespace for the FlightDates API:
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Shopping
6
+ # A namespaced client for the
7
+ # +/v2/shopping/flight-offers+ endpoints
8
+ #
9
+ # Access via the +Amadeus::Client+ object
10
+ #
11
+ # amadeus = Amadeus::Client.new
12
+ # amadeus.shopping.flight_offers_search
13
+ #
14
+ class FlightOffersSearch < Amadeus::Client::Decorator
15
+ # The namespace for the Prediction API:
16
+ #
17
+ # @return [Amadeus::Namespaces::Shopping::FlightOffersSearch::Prediction]
18
+ # @example
19
+ # amadeus.shopping.flight_offers_search.prediction
20
+ #
21
+ def prediction
22
+ Amadeus::Namespaces::Shopping::FlightOffersSearch::Prediction.new(client)
23
+ end
24
+ # Find the cheapest bookable flights.
25
+ #
26
+ # @option params [String] :origin City/Airport IATA code from which the
27
+ # flight will depart. BOS, for example.
28
+ # @option params [String] :destination City/Airport IATA code to which
29
+ # the traveler is going. PAR, for example
30
+ # @return [Amadeus::Response] a parsed response
31
+ # @raise [Amadeus::Base] an exception if the call failed
32
+ # @example Find the cheapest flight offers from New-York to Madrid,
33
+ # for the first of October 2020
34
+ # amadeus.shopping.flight_offers_search.get(
35
+ # originLocationCode: 'NYC',
36
+ # destinationLocationCode: 'MAD',
37
+ # departureDate: '2020-10-01',
38
+ # adults: 1
39
+ # )
40
+ #
41
+
42
+ def get(params = {})
43
+ client.get('/v2/shopping/flight-offers', params)
44
+ end
45
+
46
+ # Find the cheapest bookable flights.
47
+ #
48
+ # @option body [JSON] :body flight search parameters
49
+ # @return [Amadeus::Response] a parsed response
50
+ # @raise [Amadeus::Base] an exception if the call
51
+ # failed
52
+ # @example
53
+ # amadeus.shopping.flight_offers_search.post(body)
54
+ #
55
+ def post(params = {})
56
+ client.post('/v2/shopping/flight-offers', params)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -3,27 +3,28 @@
3
3
  module Amadeus
4
4
  module Namespaces
5
5
  class Shopping
6
- class FlightOffers
6
+ class FlightOffersSearch
7
7
  # A namespaced client for the
8
- # +/v1/shopping/flight-offers/prediction+ endpoints
8
+ # +/v2/shopping/flight-offers/prediction+ endpoints
9
9
  #
10
10
  # Access via the +Amadeus::Client+ object
11
11
  #
12
12
  # amadeus = Amadeus::Client.new
13
- # amadeus.shopping.flight-offers.prediction
13
+ # amadeus.shopping.flight_offers_search.prediction
14
14
  #
15
15
  class Prediction < Amadeus::Client::Decorator
16
16
  # Returns a list of flight offers including a choice prediction for each itineary.
17
17
  #
18
- # @option body [JSON] :body JSON response of the Flight Low-fare Search API
18
+ # @option body [JSON] :body JSON response of the Flight Offers Search API
19
19
  # @return [Amadeus::Response] a parsed response
20
20
  # @raise [Amadeus::Base] an exception if the call
21
21
  # failed
22
22
  # @example
23
- # amadeus.shopping.flight_offers.prediction.post(flight_offers_response.body)
23
+ # amadeus.shopping.flight_offers_search.prediction.post(
24
+ # flight_offers_search_response.body)
24
25
  #
25
26
  def post(params = {})
26
- client.post('/v1/shopping/flight-offers/prediction', params)
27
+ client.post('/v2/shopping/flight-offers/prediction', params)
27
28
  end
28
29
  end
29
30
  end
@@ -16,11 +16,20 @@ module Amadeus
16
16
  # @return [Amadeus::Namespaces::Travel::Analytics]
17
17
  # @example
18
18
  # amadeus.travel.analytics.air_traffic
19
- # amadeus.travel.analytics.fare_searches
20
19
  #
21
20
  def analytics
22
21
  Amadeus::Namespaces::Travel::Analytics.new(client)
23
22
  end
23
+
24
+ # The namespace for the travel Predictions APIs:
25
+ #
26
+ # @return [Amadeus::Namespaces::Travel::Predictions]
27
+ # @example
28
+ # amadeus.travel.predictions.trip_purpose
29
+ #
30
+ def predictions
31
+ Amadeus::Namespaces::Travel::Predictions.new(client)
32
+ end
24
33
  end
25
34
  end
26
35
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Travel
6
+ # A namespaced client for the
7
+ # +/v1/travel/predictions+ endpoints
8
+ #
9
+ # Access via the +Amadeus::Client+ object
10
+ #
11
+ # amadeus = Amadeus::Client.new
12
+ # amadeus.travel.predictions
13
+ #
14
+ class Predictions < Amadeus::Client::Decorator
15
+ # The namespace for the travel Predictions APIs:
16
+ #
17
+ # @return [Amadeus::Namespaces::Travel::Predictions]
18
+ # @example
19
+ # amadeus.travel.predictions.trip_purpose
20
+ #
21
+ def trip_purpose
22
+ Amadeus::Namespaces::Travel::Predictions::TripPurpose.new(client)
23
+ end
24
+
25
+ # The namespace for the travel Predictions APIs:
26
+ #
27
+ # @return [Amadeus::Namespaces::Travel::Predictions]
28
+ # @example
29
+ # amadeus.travel.predictions.flight_delay
30
+ #
31
+ def flight_delay
32
+ Amadeus::Namespaces::Travel::Predictions::FlightDelay.new(client)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Travel
6
+ class Predictions
7
+ # A namespaced client for the
8
+ # +/v1/travel/predictions/flight_delay+ endpoints
9
+ #
10
+ # Access via the +Amadeus::Client+ object
11
+ #
12
+ # amadeus = Amadeus::Client.new
13
+ # amadeus.travel.predictions.flight_delay
14
+ #
15
+ class FlightDelay < Amadeus::Client::Decorator
16
+ # Forecast the chances for a flight to be delayed
17
+ # @option params [String] :originLocationCode the Airport IATA code from which
18
+ # the flight will depart. ``"NYC"``, for example for New York - required
19
+ # @option params [String] :destinationLocationCode the Airport IATA code to which
20
+ # the flight is going. ``"MAD"``, for example for Madrid - required
21
+ # @option params [String] :departureDate the date on which to fly out,
22
+ # in `YYYY-MM-DD` format - required
23
+ # @option params [String] :departureTime local time on which to fly out,
24
+ # in `HH:MM:SS` format - required
25
+ # @option params [String] :arrivalDate date on which the flight returns to the origin,
26
+ # in `YYYY-MM-DD` format - required
27
+ # @option params [String] :arrivalTime local time on which to fly out,
28
+ # in `HH:MM:SS` format - required
29
+ # @option params [String] :aircraftCode IATA aircraft code - required
30
+ # @option params [String] :carrierCode airline / carrier code - required
31
+ # @option params [String] :flightNumber flight number - required
32
+ # @option params [String] :duration flight duration,
33
+ # in `PnYnMnDTnHnMnS` format e.g. PT2H10M - required
34
+ # @return [Amadeus::Response] a parsed response
35
+ # @raise [Amadeus::Base] an exception if the call failed
36
+ # @example
37
+ # amadeus.travel.predictions.flight_delay.get(originLocationCode: 'NCE',
38
+ # destinationLocationCode: 'IST',
39
+ # departureDate: '2020-08-01',
40
+ # departureTime: '18:20:00',
41
+ # arrivalDate: '2020-08-01',
42
+ # arrivalTime: '22:15:00',
43
+ # aircraftCode: '321',
44
+ # carrierCode: 'TK',
45
+ # flightNumber: '1816',
46
+ # duration: 'PT31H10M')
47
+ #
48
+ def get(params = {})
49
+ client.get('/v1/travel/predictions/flight-delay', params)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amadeus
4
+ module Namespaces
5
+ class Travel
6
+ class Predictions
7
+ # A namespaced client for the
8
+ # +/v1/travel/predictions/trip_purpose+ endpoints
9
+ #
10
+ # Access via the +Amadeus::Client+ object
11
+ #
12
+ # amadeus = Amadeus::Client.new
13
+ # amadeus.travel.predictions.trip_purpose
14
+ #
15
+ class TripPurpose < Amadeus::Client::Decorator
16
+ # Predicts traveler purpose, Business or Leisure,
17
+ # with the probability in the context of search & shopping
18
+ # @option params [String] :originLocationCode the City/Airport IATA code from which
19
+ # the flight will depart. ``"NYC"``, for example for New York - required
20
+ # @option params [String] :destinationLocationCode the City/Airport IATA code to which
21
+ # the flight is going. ``"MAD"``, for example for Madrid - required
22
+ # @option params [String] :departureDate the date on which to fly out,
23
+ # in `YYYY-MM-DD` format - required
24
+ # @option params [String] :returnDate date on which the flight returns to the origin,
25
+ # in `YYYY-MM-DD` format - required
26
+ # @option params [String] :searchDate date on which the traveler performs the search,
27
+ # in `YYYY-MM-DD` format.
28
+ # If it is not specified the current date will be used - optional
29
+ # @return [Amadeus::Response] a parsed response
30
+ # @raise [Amadeus::Base] an exception if the call failed
31
+ # @example what is the name of airline code 'U2'
32
+ # amadeus.travel.predictions.trip_purpose.get(
33
+ # originLocationCode: 'NYC',
34
+ # destinationLocationCode: 'MAD',
35
+ # departureDate: '2020-08-01',
36
+ # returnDate: '2020-08-12',
37
+ # searchDate: '2020-06-11')
38
+ #
39
+ def get(params = {})
40
+ client.get('/v1/travel/predictions/trip-purpose', params)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Amadeus
4
4
  # The current client version
5
- VERSION = '4.0.0'.freeze
5
+ VERSION = '5.0.0'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amadeus
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amadeus
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2020-02-14 00:00:00.000000000 Z
13
+ date: 2020-05-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: awesome_print
@@ -46,14 +46,14 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.14'
49
+ version: '2.16'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '2.14'
56
+ version: '2.16'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: guard-rake
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -88,14 +88,14 @@ dependencies:
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '12.3'
91
+ version: 12.3.1
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: '12.3'
98
+ version: 12.3.1
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: rb-readline
101
101
  requirement: !ruby/object:Gem::Requirement
@@ -116,84 +116,84 @@ dependencies:
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '3.7'
119
+ version: '3.9'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
- version: '3.7'
126
+ version: '3.9'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: rubocop
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - '='
132
132
  - !ruby/object:Gem::Version
133
- version: '0.59'
133
+ version: '0.79'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - '='
139
139
  - !ruby/object:Gem::Version
140
- version: '0.59'
140
+ version: '0.79'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: simplecov
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - "~>"
146
146
  - !ruby/object:Gem::Version
147
- version: '0.15'
147
+ version: '0.18'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
- version: '0.15'
154
+ version: '0.18'
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: vcr
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
159
  - - "~>"
160
160
  - !ruby/object:Gem::Version
161
- version: '4.0'
161
+ version: '5.1'
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - "~>"
167
167
  - !ruby/object:Gem::Version
168
- version: '4.0'
168
+ version: '5.1'
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: webmock
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
173
  - - "~>"
174
174
  - !ruby/object:Gem::Version
175
- version: '3.3'
175
+ version: '3.8'
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - "~>"
181
181
  - !ruby/object:Gem::Version
182
- version: '3.3'
182
+ version: '3.8'
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: yard
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - "~>"
188
188
  - !ruby/object:Gem::Version
189
- version: 0.9.12
189
+ version: 0.9.24
190
190
  type: :development
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
194
  - - "~>"
195
195
  - !ruby/object:Gem::Version
196
- version: 0.9.12
196
+ version: 0.9.24
197
197
  description: |2
198
198
  Ruby library for the Amadeus travel APIs, providing hotel, flight, airport,
199
199
  and other travel related APIs.
@@ -224,6 +224,9 @@ files:
224
224
  - lib/amadeus/client/response.rb
225
225
  - lib/amadeus/client/response/parser.rb
226
226
  - lib/amadeus/client/validator.rb
227
+ - lib/amadeus/namespaces/airport.rb
228
+ - lib/amadeus/namespaces/airport/predictions.rb
229
+ - lib/amadeus/namespaces/airport/predictions/on_time.rb
227
230
  - lib/amadeus/namespaces/booking.rb
228
231
  - lib/amadeus/namespaces/booking/hotel_bookings.rb
229
232
  - lib/amadeus/namespaces/core.rb
@@ -241,8 +244,8 @@ files:
241
244
  - lib/amadeus/namespaces/shopping.rb
242
245
  - lib/amadeus/namespaces/shopping/flight_dates.rb
243
246
  - lib/amadeus/namespaces/shopping/flight_destinations.rb
244
- - lib/amadeus/namespaces/shopping/flight_offers.rb
245
- - lib/amadeus/namespaces/shopping/flight_offers/prediction.rb
247
+ - lib/amadeus/namespaces/shopping/flight_offers_search.rb
248
+ - lib/amadeus/namespaces/shopping/flight_offers_search/prediction.rb
246
249
  - lib/amadeus/namespaces/shopping/hotel_offer.rb
247
250
  - lib/amadeus/namespaces/shopping/hotel_offers.rb
248
251
  - lib/amadeus/namespaces/shopping/hotel_offers_by_hotel.rb
@@ -252,6 +255,9 @@ files:
252
255
  - lib/amadeus/namespaces/travel/analytics/air_traffic/booked.rb
253
256
  - lib/amadeus/namespaces/travel/analytics/air_traffic/busiest_period.rb
254
257
  - lib/amadeus/namespaces/travel/analytics/air_traffic/traveled.rb
258
+ - lib/amadeus/namespaces/travel/predictions.rb
259
+ - lib/amadeus/namespaces/travel/predictions/flight_delay.rb
260
+ - lib/amadeus/namespaces/travel/predictions/trip_purpose.rb
255
261
  - lib/amadeus/version.rb
256
262
  homepage: https://github.com/amadeus4dev/amadeus-ruby
257
263
  licenses:
@@ -265,7 +271,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
271
  requirements:
266
272
  - - ">="
267
273
  - !ruby/object:Gem::Version
268
- version: 2.2.0
274
+ version: 2.4.0
269
275
  required_rubygems_version: !ruby/object:Gem::Requirement
270
276
  requirements:
271
277
  - - ">="
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Amadeus
4
- module Namespaces
5
- class Shopping
6
- # A namespaced client for the
7
- # +/v1/shopping/flight-offers+ endpoints
8
- #
9
- # Access via the +Amadeus::Client+ object
10
- #
11
- # amadeus = Amadeus::Client.new
12
- # amadeus.shopping.flight_offers
13
- #
14
- class FlightOffers < Amadeus::Client::Decorator
15
- # The namespace for the Prediction API:
16
- #
17
- # @return [Amadeus::Namespaces::Shopping::FlightOffers::Prediction]
18
- # @example
19
- # amadeus.shopping.flight_offers.prediction
20
- #
21
- def prediction
22
- Amadeus::Namespaces::Shopping::FlightOffers::Prediction.new(client)
23
- end
24
- # Find the cheapest bookable flights.
25
- #
26
- # @option params [String] :origin City/Airport IATA code from which the
27
- # flight will depart. BOS, for example.
28
- # @option params [String] :destination City/Airport IATA code to which
29
- # the traveler is going. PAR, for example
30
- # @return [Amadeus::Response] a parsed response
31
- # @raise [Amadeus::Base] an exception if the call failed
32
- # @example Find the cheapest flight offers from New-York to Madrid,
33
- # for the first of August 2020
34
- # amadeus.shopping.flight_offers.get(
35
- # origin: 'NYC',
36
- # destination: 'MAD',
37
- # departureDate: '2020-08-01'
38
- # )
39
- #
40
-
41
- def get(params = {})
42
- client.get('/v1/shopping/flight-offers', params)
43
- end
44
- end
45
- end
46
- end
47
- end