amadeus 1.1.0 → 2.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 +4 -4
- data/.rubocop_todo.yml +38 -0
- data/CHANGELOG.md +35 -0
- data/README.md +35 -33
- data/amadeus.gemspec +3 -3
- data/lib/amadeus.rb +2 -1
- data/lib/amadeus/client.rb +2 -2
- data/lib/amadeus/client/access_token.rb +1 -0
- data/lib/amadeus/client/decorator.rb +1 -0
- data/lib/amadeus/client/errors.rb +2 -0
- data/lib/amadeus/client/http.rb +1 -0
- data/lib/amadeus/client/pagination.rb +1 -0
- data/lib/amadeus/client/request.rb +3 -0
- data/lib/amadeus/client/response/parser.rb +1 -0
- data/lib/amadeus/client/validator.rb +1 -0
- data/lib/amadeus/namespaces/reference_data/airlines.rb +3 -3
- data/lib/amadeus/namespaces/reference_data/urls/checkin_links.rb +3 -3
- data/lib/amadeus/namespaces/shopping/flight_dates.rb +3 -3
- data/lib/amadeus/namespaces/shopping/flight_destinations.rb +2 -2
- data/lib/amadeus/namespaces/shopping/flight_offers.rb +5 -4
- data/lib/amadeus/namespaces/travel/analytics.rb +0 -10
- data/lib/amadeus/namespaces/travel/analytics/air_traffic.rb +26 -3
- data/lib/amadeus/namespaces/travel/analytics/air_traffic/booked.rb +8 -7
- data/lib/amadeus/namespaces/travel/analytics/air_traffic/busiest_period.rb +4 -4
- data/lib/amadeus/namespaces/travel/analytics/air_traffic/searched.rb +46 -0
- data/lib/amadeus/namespaces/travel/analytics/air_traffic/searched_by_destination.rb +54 -0
- data/lib/amadeus/namespaces/travel/analytics/air_traffic/traveled.rb +9 -7
- data/lib/amadeus/version.rb +1 -1
- metadata +12 -8
- data/lib/amadeus/namespaces/travel/analytics/fare_searches.rb +0 -46
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a30ea6344ae22d11df337a484c13e074a60e59e60807d00841987be4b6172d91
|
|
4
|
+
data.tar.gz: ab8c30fcc9ae6da0b7fb4e999fa2d4ae422027835776f2fb9cdcb4d37d60846c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bc4ca3df59611e1d592a16f13f81496bd54fc6c381777f24ce148a4f077abb523e1363e14940dd727746ce74c4e310af59b66903f822d46ea9fe268d29ddc870
|
|
7
|
+
data.tar.gz: 331719a2fb0cb21758e86efefbfd2a541c3ce04d16767b875734d1bcab62dc40e683a02d36a2a4ce567165d85d75924e642954ec5175b156bca48581cdbf92b9
|
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2018-11-12 16:24:14 +0100 using RuboCop version 0.59.0.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
+
|
|
9
|
+
# Offense count: 2
|
|
10
|
+
# Cop supports --auto-correct.
|
|
11
|
+
Layout/SpaceAfterComma:
|
|
12
|
+
Exclude:
|
|
13
|
+
- 'amadeus.gemspec'
|
|
14
|
+
|
|
15
|
+
# Offense count: 1
|
|
16
|
+
# Cop supports --auto-correct.
|
|
17
|
+
# Configuration parameters: AllowInHeredoc.
|
|
18
|
+
Layout/TrailingWhitespace:
|
|
19
|
+
Exclude:
|
|
20
|
+
- 'spec/namespaces/travel/analytics/air_traffic/searched_by_destination.rb'
|
|
21
|
+
|
|
22
|
+
# Offense count: 1
|
|
23
|
+
# Configuration parameters: CountComments, ExcludedMethods.
|
|
24
|
+
# ExcludedMethods: refine
|
|
25
|
+
Metrics/BlockLength:
|
|
26
|
+
Max: 26
|
|
27
|
+
|
|
28
|
+
# Offense count: 1
|
|
29
|
+
# Cop supports --auto-correct.
|
|
30
|
+
Style/IfUnlessModifier:
|
|
31
|
+
Exclude:
|
|
32
|
+
- 'lib/amadeus/client/decorator.rb'
|
|
33
|
+
|
|
34
|
+
# Offense count: 7
|
|
35
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
36
|
+
# URISchemes: http, https
|
|
37
|
+
Metrics/LineLength:
|
|
38
|
+
Max: 97
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.0 - 2018-10-12
|
|
4
|
+
|
|
5
|
+
[Flight Most Searched Destinations](https://developers.amadeus.com/self-service/category/203/api-doc/6): Redesign of the API - Split the previous endpoint in 2 endpoints:
|
|
6
|
+
* 1st endpoint to find the most searched destinations
|
|
7
|
+
* 2nd endpoint to have more data about a dedicated origin & destination
|
|
8
|
+
|
|
9
|
+
[Flight Most Booked Destinations](https://developers.amadeus.com/self-service/category/203/api-doc/6):
|
|
10
|
+
* Rename origin to originCityCode
|
|
11
|
+
|
|
12
|
+
[Flight Most Traveled Destinations](https://developers.amadeus.com/self-service/category/203/api-doc/7):
|
|
13
|
+
* Rename origin in originCityCode
|
|
14
|
+
|
|
15
|
+
[Flight Check-in Links](https://developers.amadeus.com/self-service/category/203/api-doc/8):
|
|
16
|
+
* Rename airline to airlineCode
|
|
17
|
+
|
|
18
|
+
[Airport & City Search](https://developers.amadeus.com/self-service/category/203/api-doc/10):
|
|
19
|
+
* Remove parameter onlyMajor
|
|
20
|
+
|
|
21
|
+
[Airport Nearest Relevant](https://developers.amadeus.com/self-service/category/203/api-doc/9):
|
|
22
|
+
* Add radius as parameter
|
|
23
|
+
|
|
24
|
+
[Airline Code Lookup](https://developers.amadeus.com/self-service/category/203/api-doc/26):
|
|
25
|
+
* Regroup parameters _IATACode_ and _ICAOCode_ under the same name _airlineCodes_
|
|
26
|
+
|
|
27
|
+
## 1.1.0 - 2018-08-01
|
|
28
|
+
|
|
29
|
+
New version of the ruby gem to support our 3 new endpoints:
|
|
30
|
+
|
|
31
|
+
* [Flight Most Booked Destinations](https://developers.amadeus.com/self-service/category/203/api-doc/27)
|
|
32
|
+
|
|
33
|
+
* [Flight Busiest Traveling Period](https://developers.amadeus.com/self-service/category/203/api-doc/28)
|
|
34
|
+
|
|
35
|
+
* [Airline Code Lookup](https://developers.amadeus.com/self-service/category/203/api-doc/26)
|
|
36
|
+
|
|
37
|
+
|
|
3
38
|
## 1.0.0 - 2018-04-19
|
|
4
39
|
|
|
5
40
|
The first stable version of the Amadeus for Developers ruby SDK
|
data/README.md
CHANGED
|
@@ -34,13 +34,12 @@ your first application.
|
|
|
34
34
|
require 'amadeus'
|
|
35
35
|
|
|
36
36
|
amadeus = Amadeus::Client.new({
|
|
37
|
-
client_id: '
|
|
38
|
-
client_secret: '
|
|
37
|
+
client_id: 'REPLACE_BY_YOUR_API_KEY',
|
|
38
|
+
client_secret: 'REPLACE_BY_YOUR_API_SECRET'
|
|
39
39
|
})
|
|
40
40
|
|
|
41
41
|
begin
|
|
42
|
-
puts amadeus.reference_data.urls.checkin_links.get({ airline: '
|
|
43
|
-
# => {"meta"=>{"count"=>2, "links"=>{"self"=>"https://test.api.amadeus.com...
|
|
42
|
+
puts amadeus.reference_data.urls.checkin_links.get({ airline: 'BA' })
|
|
44
43
|
rescue Amadeus::ResponseError => error
|
|
45
44
|
puts error
|
|
46
45
|
end
|
|
@@ -52,10 +51,10 @@ The client can be initialized directly.
|
|
|
52
51
|
|
|
53
52
|
```rb
|
|
54
53
|
# Initialize using parameters
|
|
55
|
-
amadeus = Amadeus::Client.new(client_id: '
|
|
54
|
+
amadeus = Amadeus::Client.new(client_id: 'REPLACE_BY_YOUR_API_KEY', client_secret: 'REPLACE_BY_YOUR_API_SECRET')
|
|
56
55
|
```
|
|
57
56
|
|
|
58
|
-
Alternatively it can be initialized without any
|
|
57
|
+
Alternatively it can be initialized without any parameters if the environment
|
|
59
58
|
variables `AMADEUS_CLIENT_ID` and `AMADEUS_CLIENT_SECRET` are present.
|
|
60
59
|
|
|
61
60
|
```rb
|
|
@@ -91,10 +90,10 @@ in-depth information about every SDK method, its arguments and return types.
|
|
|
91
90
|
|
|
92
91
|
This library conveniently maps every API path to a similar path.
|
|
93
92
|
|
|
94
|
-
For example, `GET /v2/reference-data/urls/checkin-links?airline=
|
|
93
|
+
For example, `GET /v2/reference-data/urls/checkin-links?airline=BA` would be:
|
|
95
94
|
|
|
96
95
|
```rb
|
|
97
|
-
amadeus.reference_data.urls.checkin_links.get(airline: '
|
|
96
|
+
amadeus.reference_data.urls.checkin_links.get(airline: 'BA')
|
|
98
97
|
```
|
|
99
98
|
|
|
100
99
|
Similarly, to select a resource by ID, you can pass in the ID to the **singular** path.
|
|
@@ -108,7 +107,7 @@ amadeus.hotel(123).offer(234).get(...)
|
|
|
108
107
|
You can make any arbitrary API call as well directly with the `.get` method:
|
|
109
108
|
|
|
110
109
|
```rb
|
|
111
|
-
amadeus.get('/v2/reference-data/urls/checkin-links', airline: '
|
|
110
|
+
amadeus.get('/v2/reference-data/urls/checkin-links', airline: 'BA')
|
|
112
111
|
```
|
|
113
112
|
|
|
114
113
|
## Response
|
|
@@ -124,8 +123,8 @@ response = amadeus.reference_data.locations.get(
|
|
|
124
123
|
subType: Amadeus::Location::ANY
|
|
125
124
|
)
|
|
126
125
|
|
|
127
|
-
p
|
|
128
|
-
p
|
|
126
|
+
p response.body #=> The raw response, as a string
|
|
127
|
+
p response.result #=> The body parsed as JSON, if the result was parsable
|
|
129
128
|
p response.data #=> The list of locations, extracted from the JSON
|
|
130
129
|
```
|
|
131
130
|
|
|
@@ -153,8 +152,8 @@ The SDK makes it easy to add your own logger.
|
|
|
153
152
|
require 'logger'
|
|
154
153
|
|
|
155
154
|
amadeus = Amadeus::Client.new(
|
|
156
|
-
client_id: '
|
|
157
|
-
client_secret: '
|
|
155
|
+
client_id: 'REPLACE_BY_YOUR_API_KEY',
|
|
156
|
+
client_secret: 'REPLACE_BY_YOUR_API_SECRET',
|
|
158
157
|
logger: Logger.new(STDOUT)
|
|
159
158
|
)
|
|
160
159
|
```
|
|
@@ -168,59 +167,62 @@ variable.
|
|
|
168
167
|
require 'logger'
|
|
169
168
|
|
|
170
169
|
amadeus = Amadeus::Client.new(
|
|
171
|
-
client_id: '
|
|
172
|
-
client_secret: '
|
|
170
|
+
client_id: 'REPLACE_BY_YOUR_API_KEY',
|
|
171
|
+
client_secret: 'REPLACE_BY_YOUR_API_SECRET',
|
|
173
172
|
log_level: 'debug' # or "warn" or "silent", defaults to "silent"
|
|
174
173
|
)
|
|
175
174
|
```
|
|
176
175
|
## List of supported endpoints
|
|
177
176
|
```rb
|
|
178
|
-
# Flight Cheapest Date Search
|
|
179
|
-
amadeus.shopping.flight_dates.get(origin: 'NCE', destination: 'PAR', duration: 1)
|
|
180
|
-
|
|
181
177
|
# Flight Inspiration Search
|
|
182
178
|
amadeus.shopping.flight_destinations.get(origin: 'MAD')
|
|
183
179
|
|
|
180
|
+
# Flight Cheapest Date Search
|
|
181
|
+
amadeus.shopping.flight_dates.get(origin: 'NYC', destination: 'MAD')
|
|
182
|
+
|
|
184
183
|
# Flight Low-fare Search
|
|
185
|
-
amadeus.shopping.flight_offers.get(origin: '
|
|
184
|
+
amadeus.shopping.flight_offers.get(origin: 'NYC', destination: 'MAD', departureDate: '2019-08-01')
|
|
186
185
|
|
|
187
186
|
# Flight Check-in Links
|
|
188
|
-
amadeus.reference_data.urls.checkin_links.get({
|
|
187
|
+
amadeus.reference_data.urls.checkin_links.get({ airlineCode: 'BA' })
|
|
189
188
|
|
|
190
189
|
# Airline Code Lookup
|
|
191
|
-
amadeus.reference_data.airlines.get({
|
|
190
|
+
amadeus.reference_data.airlines.get({ airlineCodes: 'U2' })
|
|
192
191
|
|
|
193
192
|
# Airport & City Search (autocomplete)
|
|
194
|
-
# Find all the cities and airports starting by the keyword '
|
|
193
|
+
# Find all the cities and airports starting by the keyword 'LON'
|
|
195
194
|
amadeus.reference_data.locations.get(
|
|
196
|
-
keyword: '
|
|
195
|
+
keyword: 'LON',
|
|
197
196
|
subType: Amadeus::Location::ANY
|
|
198
197
|
)
|
|
199
198
|
# Get a specific city or airport based on its id
|
|
200
199
|
amadeus.reference_data.location('ALHR').get
|
|
201
200
|
|
|
202
|
-
# Airport Nearest Relevant
|
|
201
|
+
# Airport Nearest Relevant
|
|
203
202
|
amadeus.reference_data.locations.airports.get(longitude: 49.0000, latitude: 2.55)
|
|
204
203
|
|
|
205
204
|
# Flight Most Searched Destinations
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
#
|
|
209
|
-
amadeus.travel.analytics.air_traffic.
|
|
205
|
+
# Get the most searched destinations from an origin
|
|
206
|
+
amadeus.travel.analytics.air_traffic.searched.get(originCityCode: 'MAD', searchPeriod: '2017-08', marketCountryCode: 'ES')
|
|
207
|
+
# How many people in Spain searched for a trip from Madrid to New-York in August 2017?
|
|
208
|
+
amadeus.travel.analytics.air_traffic.searched_by_destination.get(originCityCode: 'MAD', destinationCityCode: 'NYC', searchPeriod: '2017-08', marketCountryCode: 'ES')
|
|
210
209
|
|
|
211
210
|
# Flight Most Booked Destinations
|
|
212
|
-
amadeus.travel.analytics.air_traffic.booked.get(
|
|
211
|
+
amadeus.travel.analytics.air_traffic.booked.get(originCityCode: 'MAD', period: '2017-08')
|
|
212
|
+
|
|
213
|
+
# Flight Most Traveled Destinations
|
|
214
|
+
amadeus.travel.analytics.air_traffic.traveled.get(originCityCode: 'MAD', period: '2017-01')
|
|
213
215
|
|
|
214
216
|
# Flight Busiest Period
|
|
215
217
|
amadeus.travel.analytics.air_traffic.busiest_period.get(
|
|
216
|
-
|
|
218
|
+
cityCode: 'MAD',
|
|
217
219
|
period: '2017',
|
|
218
|
-
direction
|
|
220
|
+
direction: Amadeus::Direction::ARRIVING
|
|
219
221
|
)
|
|
220
222
|
|
|
221
223
|
# Hotel Search API
|
|
222
224
|
# Get list of hotels by cityCode
|
|
223
|
-
amadeus.shopping.hotel_offers.get(cityCode: '
|
|
225
|
+
amadeus.shopping.hotel_offers.get(cityCode: 'MAD')
|
|
224
226
|
# Get list of offers for a specific hotel
|
|
225
227
|
amadeus.shopping.hotel('SMPARCOL').hotel_offers.get
|
|
226
228
|
# Confirm the availability of a specific offer for a specific hotel
|
|
@@ -246,4 +248,4 @@ to help you. You can find us on
|
|
|
246
248
|
[gem]: https://rubygems.org/gems/amadeus
|
|
247
249
|
[travis]: http://travis-ci.org/amadeus4dev/amadeus-ruby
|
|
248
250
|
[support]: http://developers.amadeus.com/support
|
|
249
|
-
[codeclimate]: https://codeclimate.com/github/amadeus4dev/amadeus-ruby
|
|
251
|
+
[codeclimate]: https://codeclimate.com/github/amadeus4dev/amadeus-ruby
|
data/amadeus.gemspec
CHANGED
|
@@ -5,8 +5,8 @@ require 'amadeus/version'
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = 'amadeus'
|
|
7
7
|
spec.version = Amadeus::VERSION
|
|
8
|
-
spec.authors = ['Amadeus', 'Cristiano Betta']
|
|
9
|
-
spec.email = ['developer@amadeus.com', 'cristiano@betta.io']
|
|
8
|
+
spec.authors = ['Amadeus', 'Cristiano Betta','Anthony Roux']
|
|
9
|
+
spec.email = ['developer@amadeus.com', 'cristiano@betta.io','anthony.roux@amadeus.com']
|
|
10
10
|
|
|
11
11
|
spec.summary = 'Amadeus travel APIs'
|
|
12
12
|
spec.description = <<-DESCRIPTION
|
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
spec.add_development_dependency 'guard-yard', '~> 2.2'
|
|
34
34
|
spec.add_development_dependency 'rake', '~> 12.3'
|
|
35
35
|
spec.add_development_dependency 'rspec', '~> 3.7'
|
|
36
|
-
spec.add_development_dependency 'rubocop', '
|
|
36
|
+
spec.add_development_dependency 'rubocop', '0.59'
|
|
37
37
|
spec.add_development_dependency 'simplecov', '~> 0.15'
|
|
38
38
|
spec.add_development_dependency 'vcr', '~> 4.0'
|
|
39
39
|
spec.add_development_dependency 'webmock', '~> 3.3'
|
data/lib/amadeus.rb
CHANGED
|
@@ -26,10 +26,11 @@ require 'amadeus/namespaces/shopping/hotel'
|
|
|
26
26
|
require 'amadeus/namespaces/shopping/hotel/offer'
|
|
27
27
|
require 'amadeus/namespaces/shopping/hotel/hotel_offers'
|
|
28
28
|
require 'amadeus/namespaces/travel/analytics'
|
|
29
|
-
require 'amadeus/namespaces/travel/analytics/fare_searches'
|
|
30
29
|
require 'amadeus/namespaces/travel/analytics/air_traffic'
|
|
31
30
|
require 'amadeus/namespaces/travel/analytics/air_traffic/traveled'
|
|
32
31
|
require 'amadeus/namespaces/travel/analytics/air_traffic/booked'
|
|
32
|
+
require 'amadeus/namespaces/travel/analytics/air_traffic/searched'
|
|
33
|
+
require 'amadeus/namespaces/travel/analytics/air_traffic/searched_by_destination'
|
|
33
34
|
require 'amadeus/namespaces/travel/analytics/air_traffic/busiest_period'
|
|
34
35
|
|
|
35
36
|
# The namespace for the files used to make API
|
data/lib/amadeus/client.rb
CHANGED
|
@@ -47,8 +47,8 @@ module Amadeus
|
|
|
47
47
|
# Initialize using your credentials:
|
|
48
48
|
#
|
|
49
49
|
# amadeus = Amadeus::Client.new(
|
|
50
|
-
# client_id: '
|
|
51
|
-
# client_secret: '
|
|
50
|
+
# client_id: 'REPLACE_BY_YOUR_API_KEY',
|
|
51
|
+
# client_secret: 'REPLACE_BY_YOUR_API_SECRET'
|
|
52
52
|
# )
|
|
53
53
|
#
|
|
54
54
|
# Alternatively, initialize the library using
|
|
@@ -36,6 +36,7 @@ module Amadeus
|
|
|
36
36
|
def log(client)
|
|
37
37
|
# :nocov:
|
|
38
38
|
return unless client.log_level == 'warn'
|
|
39
|
+
|
|
39
40
|
client.logger.warn("Amadeus #{@code}") do
|
|
40
41
|
JSON.pretty_generate(@description) if @description
|
|
41
42
|
end
|
|
@@ -64,6 +65,7 @@ module Amadeus
|
|
|
64
65
|
# Determines the longer description, printed after the initial error
|
|
65
66
|
def long_description
|
|
66
67
|
return '' unless response && response.parsed
|
|
68
|
+
|
|
67
69
|
message = ''
|
|
68
70
|
message += error_description if response.result['error_description']
|
|
69
71
|
message += errors_description if response.result['errors']
|
data/lib/amadeus/client/http.rb
CHANGED
|
@@ -110,12 +110,14 @@ module Amadeus
|
|
|
110
110
|
|
|
111
111
|
def add_post_data(request)
|
|
112
112
|
return unless @verb == :POST
|
|
113
|
+
|
|
113
114
|
@headers['Content-Type'] = 'application/x-www-form-urlencoded'
|
|
114
115
|
request.form_data = @params
|
|
115
116
|
end
|
|
116
117
|
|
|
117
118
|
def add_bearer_token(_request)
|
|
118
119
|
return if @bearer_token.nil?
|
|
120
|
+
|
|
119
121
|
@headers['Authorization'] = @bearer_token
|
|
120
122
|
end
|
|
121
123
|
|
|
@@ -128,6 +130,7 @@ module Amadeus
|
|
|
128
130
|
def build_user_agent
|
|
129
131
|
user_agent = "amadeus-ruby/#{@client_version} ruby/#{@language_version}"
|
|
130
132
|
return user_agent unless @app_id
|
|
133
|
+
|
|
131
134
|
user_agent + " #{@app_id}/#{@app_version}"
|
|
132
135
|
end
|
|
133
136
|
|
|
@@ -87,6 +87,7 @@ module Amadeus
|
|
|
87
87
|
def warn_on_unrecognized_options(options, logger, recognized_options)
|
|
88
88
|
options.each_key do |key|
|
|
89
89
|
next if recognized_options.include?(key.to_sym)
|
|
90
|
+
|
|
90
91
|
logger.warn('Amadeus::Client::Validator') do
|
|
91
92
|
# :nocov:
|
|
92
93
|
"Unrecognized option: #{key}"
|
|
@@ -13,12 +13,12 @@ module Amadeus
|
|
|
13
13
|
#
|
|
14
14
|
class Airlines < Amadeus::Client::Decorator
|
|
15
15
|
# Returns the airline name for a given IATA code
|
|
16
|
-
# @option params [String] :
|
|
17
|
-
#
|
|
16
|
+
# @option params [String] :airlineCodes airline IATA code or ICAO code
|
|
17
|
+
# - required
|
|
18
18
|
# @return [Amadeus::Response] a parsed response
|
|
19
19
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
20
20
|
# @example what is the name of airline code 'U2'
|
|
21
|
-
# amadeus.reference_data.airlines.get(
|
|
21
|
+
# amadeus.reference_data.airlines.get(airlineCodes: 'U2')
|
|
22
22
|
#
|
|
23
23
|
def get(params = {})
|
|
24
24
|
client.get('/v1/reference-data/airlines', params)
|
|
@@ -16,12 +16,12 @@ module Amadeus
|
|
|
16
16
|
# Returns the checkin links for an airline, for the
|
|
17
17
|
# language of your choice
|
|
18
18
|
#
|
|
19
|
-
# @option params [String] :
|
|
19
|
+
# @option params [String] :airlineCode airline ID - required
|
|
20
20
|
# @option params [String] :language (en-GB) the locale for the links
|
|
21
21
|
# @return [Amadeus::Response] a parsed response
|
|
22
22
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
23
|
-
# @example Find a the checkin links for
|
|
24
|
-
# amadeus.reference_data.urls.checkin_links.get(
|
|
23
|
+
# @example Find a the checkin links for British Airways
|
|
24
|
+
# amadeus.reference_data.urls.checkin_links.get(airlineCode: 'BA')
|
|
25
25
|
#
|
|
26
26
|
def get(params = {})
|
|
27
27
|
client.get('/v2/reference-data/urls/checkin-links', params)
|
|
@@ -20,9 +20,9 @@ module Amadeus
|
|
|
20
20
|
# the flight is going. BOS, for example.
|
|
21
21
|
# @return [Amadeus::Response] a parsed response
|
|
22
22
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
23
|
-
# @example Find the cheapest flight from
|
|
24
|
-
# amadeus.shopping.flight_dates.get(origin: '
|
|
25
|
-
# destination: '
|
|
23
|
+
# @example Find the cheapest flight dates from New-York to Madrid
|
|
24
|
+
# amadeus.shopping.flight_dates.get(origin: 'NYC',
|
|
25
|
+
# destination: 'MAD')
|
|
26
26
|
#
|
|
27
27
|
def get(params = {})
|
|
28
28
|
client.get('/v1/shopping/flight-dates', params)
|
|
@@ -18,8 +18,8 @@ module Amadeus
|
|
|
18
18
|
# flight will depart. BOS, for example.
|
|
19
19
|
# @return [Amadeus::Response] a parsed response
|
|
20
20
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
21
|
-
# @example Find the cheapest
|
|
22
|
-
# amadeus.shopping.flight_destinations.get(origin: '
|
|
21
|
+
# @example Find the cheapest destinations from Madrid
|
|
22
|
+
# amadeus.shopping.flight_destinations.get(origin: 'MAD')
|
|
23
23
|
#
|
|
24
24
|
def get(params = {})
|
|
25
25
|
client.get('/v1/shopping/flight-destinations', params)
|
|
@@ -20,11 +20,12 @@ module Amadeus
|
|
|
20
20
|
# the traveler is going. PAR, for example
|
|
21
21
|
# @return [Amadeus::Response] a parsed response
|
|
22
22
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
23
|
-
# @example Find the cheapest
|
|
23
|
+
# @example Find the cheapest flight offers from New-York to Madrid,
|
|
24
|
+
# for the first of August 2019
|
|
24
25
|
# amadeus.shopping.flight_offers.get(
|
|
25
|
-
# origin: '
|
|
26
|
-
# destination: '
|
|
27
|
-
# departureDate: '
|
|
26
|
+
# origin: 'NYC',
|
|
27
|
+
# destination: 'MAD',
|
|
28
|
+
# departureDate: '2019-08-01'
|
|
28
29
|
# )
|
|
29
30
|
#
|
|
30
31
|
def get(params = {})
|
|
@@ -12,16 +12,6 @@ module Amadeus
|
|
|
12
12
|
# amadeus.travel.analytics
|
|
13
13
|
#
|
|
14
14
|
class Analytics < Amadeus::Client::Decorator
|
|
15
|
-
# The namespace for the FareSearches API:
|
|
16
|
-
#
|
|
17
|
-
# @return [Amadeus::Namespaces::Travel::Analytics::FareSearches]
|
|
18
|
-
# @example
|
|
19
|
-
# amadeus.travel.analytics.fare_searches
|
|
20
|
-
#
|
|
21
|
-
def fare_searches
|
|
22
|
-
Amadeus::Namespaces::Travel::Analytics::FareSearches.new(client)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
15
|
# The namespace for the travel Analytics APIs:
|
|
26
16
|
#
|
|
27
17
|
# @return [Amadeus::Namespaces::Travel::Analytics]
|
|
@@ -28,7 +28,7 @@ module Amadeus
|
|
|
28
28
|
# The namespace for the Booked API:
|
|
29
29
|
#
|
|
30
30
|
# @return
|
|
31
|
-
#
|
|
31
|
+
# [Amadeus::Namespaces::Travel::Analytics::AirTraffic::Booked]
|
|
32
32
|
# @example
|
|
33
33
|
# amadeus.travel.analytics.air_traffic.booked
|
|
34
34
|
def booked
|
|
@@ -37,12 +37,35 @@ module Amadeus
|
|
|
37
37
|
)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
# The namespace for the Searched API:
|
|
41
|
+
#
|
|
42
|
+
# @return
|
|
43
|
+
# [Amadeus::Namespaces::Travel::Analytics::AirTraffic::Searched]
|
|
44
|
+
# @example
|
|
45
|
+
# amadeus.travel.analytics.air_traffic.searched
|
|
46
|
+
def searched
|
|
47
|
+
Amadeus::Namespaces::Travel::Analytics::AirTraffic::Searched.new(
|
|
48
|
+
client
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# The namespace for the SearchedByDestination API:
|
|
53
|
+
#
|
|
54
|
+
# @return
|
|
55
|
+
# [Amadeus::Namespaces::Travel::Analytics::AirTraffic::SearchedByDestination]
|
|
56
|
+
# @example
|
|
57
|
+
# amadeus.travel.analytics.air_traffic.searched_by_destination
|
|
58
|
+
def searched_by_destination
|
|
59
|
+
Amadeus::Namespaces::Travel::Analytics::AirTraffic::SearchedByDestination
|
|
60
|
+
.new(client)
|
|
61
|
+
end
|
|
62
|
+
|
|
40
63
|
# The namespace for the Busiest Period API:
|
|
41
64
|
#
|
|
42
65
|
# @return
|
|
43
|
-
#
|
|
66
|
+
# [Amadeus::Namespaces::Travel::Analytics::AirTraffic::BusiestPeriod]
|
|
44
67
|
# @example
|
|
45
|
-
#
|
|
68
|
+
# amadeus.travel.analytics.air_traffic.busiest_period
|
|
46
69
|
def busiest_period
|
|
47
70
|
Amadeus::Namespaces::Travel::Analytics::AirTraffic::BusiestPeriod
|
|
48
71
|
.new(client)
|
|
@@ -16,17 +16,18 @@ module Amadeus
|
|
|
16
16
|
class Booked < Amadeus::Client::Decorator
|
|
17
17
|
# Returns a list of air traffic reports, based on bookings.
|
|
18
18
|
#
|
|
19
|
-
# @option params [String] :
|
|
19
|
+
# @option params [String] :originCityCode
|
|
20
|
+
# IATA code of the origin city -
|
|
20
21
|
# e.g. BOS for Boston - required
|
|
21
|
-
# @option params [String] :
|
|
22
|
-
# are
|
|
23
|
-
# in YYYY-MM format
|
|
22
|
+
# @option params [String] :period period when consumers
|
|
23
|
+
# are booking
|
|
24
|
+
# in YYYY-MM format - required
|
|
24
25
|
# @return [Amadeus::Response] a parsed response
|
|
25
26
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
26
|
-
# @example Find the air traffic from
|
|
27
|
+
# @example Find the air traffic from Nice in August 2017
|
|
27
28
|
# amadeus.travel.analytics.air_traffic.booked.get(
|
|
28
|
-
#
|
|
29
|
-
# period: '2017-
|
|
29
|
+
# originCityCode: 'NCE',
|
|
30
|
+
# period: '2017-08'
|
|
30
31
|
# )
|
|
31
32
|
#
|
|
32
33
|
def get(params = {})
|
|
@@ -17,17 +17,17 @@ module Amadeus
|
|
|
17
17
|
# Returns the months of the selected year, ordered from busiest
|
|
18
18
|
# to least busy.
|
|
19
19
|
#
|
|
20
|
-
# @option params [String] :
|
|
20
|
+
# @option params [String] :cityCode IATA code of the origin city -
|
|
21
21
|
# e.g. BOS for Boston - required
|
|
22
22
|
# @option params [String] :period period when consumers
|
|
23
|
-
# are travelling in YYYY format
|
|
23
|
+
# are travelling in YYYY format - required
|
|
24
24
|
# @option params [String] :direction to select between
|
|
25
|
-
# arrivals and departures (default: arrivals)
|
|
25
|
+
# arrivals and departures (default: arrivals) - required
|
|
26
26
|
# @return [Amadeus::Response] a parsed response
|
|
27
27
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
28
28
|
# @example What was the busiest travel period in 2017
|
|
29
29
|
# amadeus.travel.analytics.air_traffic.busiest_period.get(
|
|
30
|
-
#
|
|
30
|
+
# cityCode: 'MAD',
|
|
31
31
|
# period: '2017',
|
|
32
32
|
# direction: Amadeus::Direction::ARRIVING
|
|
33
33
|
# )
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Amadeus
|
|
4
|
+
module Namespaces
|
|
5
|
+
class Travel
|
|
6
|
+
class Analytics
|
|
7
|
+
class AirTraffic
|
|
8
|
+
# A namespaced client for the
|
|
9
|
+
# +/v1/travel/analytics/air-traffic/searched+ endpoints
|
|
10
|
+
#
|
|
11
|
+
# Access via the +Amadeus::Client+ object
|
|
12
|
+
#
|
|
13
|
+
# amadeus = Amadeus::Client.new
|
|
14
|
+
# amadeus.travel.analytics.air_traffic.searched
|
|
15
|
+
#
|
|
16
|
+
class Searched < Amadeus::Client::Decorator
|
|
17
|
+
# Returns a list of air traffic reports, based on searches.
|
|
18
|
+
#
|
|
19
|
+
# @option params [String] :originCityCode
|
|
20
|
+
# IATA code of the origin city -
|
|
21
|
+
# e.g. MAD for Madrid - required
|
|
22
|
+
# @option params [String] :marketCountryCode
|
|
23
|
+
# IATA code of the country from which the searches were made -
|
|
24
|
+
# e.g. ES for Spain - required
|
|
25
|
+
# @option params [String] :searchPeriod when consumers
|
|
26
|
+
# are searching -
|
|
27
|
+
# in YYYY-MM format - required
|
|
28
|
+
# @return [Amadeus::Response] a parsed response
|
|
29
|
+
# @raise [Amadeus::Base] an exception if the call failed
|
|
30
|
+
# @example Which were the most searched flight destinations
|
|
31
|
+
# from Madrid in August 2017?
|
|
32
|
+
# amadeus.travel.analytics.air_traffic.searched.get(
|
|
33
|
+
# originCityCode: 'MAD',
|
|
34
|
+
# searchPeriod: '2017-08',
|
|
35
|
+
# marketCountryCode: 'ES'
|
|
36
|
+
# )
|
|
37
|
+
#
|
|
38
|
+
def get(params = {})
|
|
39
|
+
client.get('/v1/travel/analytics/air-traffic/searched', params)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Amadeus
|
|
4
|
+
module Namespaces
|
|
5
|
+
class Travel
|
|
6
|
+
class Analytics
|
|
7
|
+
class AirTraffic
|
|
8
|
+
# A namespaced client for the
|
|
9
|
+
# +/v1/travel/analytics/air-traffic/searched_by_destination+ endpoints
|
|
10
|
+
#
|
|
11
|
+
# Access via the +Amadeus::Client+ object
|
|
12
|
+
#
|
|
13
|
+
# amadeus = Amadeus::Client.new
|
|
14
|
+
# amadeus.travel.analytics.air_traffic.searched_by_destination
|
|
15
|
+
#
|
|
16
|
+
class SearchedByDestination < Amadeus::Client::Decorator
|
|
17
|
+
# Returns a list of air traffic reports,
|
|
18
|
+
# based on searches for a dedicated destination.
|
|
19
|
+
#
|
|
20
|
+
# @option params [String] :originCityCode
|
|
21
|
+
# IATA code of the origin city -
|
|
22
|
+
# e.g. NCE for Nice - required
|
|
23
|
+
# @option params [String] :destinationCityCode
|
|
24
|
+
# IATA code of the destinaton city -
|
|
25
|
+
# e.g. PAR for Paris - required
|
|
26
|
+
# @option params [String] :marketCountryCode
|
|
27
|
+
# IATA code of the country from which the searches were made -
|
|
28
|
+
# e.g. FR for France - required
|
|
29
|
+
# @option params [String] :searchPeriod when consumers
|
|
30
|
+
# are searching -
|
|
31
|
+
# in YYYY-MM format - required
|
|
32
|
+
# @return [Amadeus::Response] a parsed response
|
|
33
|
+
# @raise [Amadeus::Base] an exception if the call failed
|
|
34
|
+
# @example How many people in France searched for a trip
|
|
35
|
+
# from Nice to Paris in September 2015?
|
|
36
|
+
# amadeus.travel.analytics.air_traffic.searched_by_destination.get(
|
|
37
|
+
# originCityCode: 'NCE',
|
|
38
|
+
# destinationCityCode: 'PAR',
|
|
39
|
+
# searchPeriod: '2015-09',
|
|
40
|
+
# marketCountryCode: 'FR'
|
|
41
|
+
# )
|
|
42
|
+
#
|
|
43
|
+
def get(params = {})
|
|
44
|
+
client.get(
|
|
45
|
+
'/v1/travel/analytics/air-traffic/searched/by-destination',
|
|
46
|
+
params
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -14,19 +14,21 @@ module Amadeus
|
|
|
14
14
|
# amadeus.travel.analytics.air_traffic.traveled
|
|
15
15
|
#
|
|
16
16
|
class Traveled < Amadeus::Client::Decorator
|
|
17
|
-
# Returns a list of air traffic reports
|
|
17
|
+
# Returns a list of air traffic reports,
|
|
18
|
+
# based on number of people traveling.
|
|
18
19
|
#
|
|
19
|
-
# @option params [String] :
|
|
20
|
+
# @option params [String] :originCityCode
|
|
21
|
+
# IATA code of the origin city -
|
|
20
22
|
# e.g. BOS for Boston - required
|
|
21
|
-
# @option params [String] :
|
|
23
|
+
# @option params [String] :period period when consumers
|
|
22
24
|
# are travelling
|
|
23
|
-
# in YYYY-MM format
|
|
25
|
+
# in YYYY-MM format - required
|
|
24
26
|
# @return [Amadeus::Response] a parsed response
|
|
25
27
|
# @raise [Amadeus::Base] an exception if the call failed
|
|
26
|
-
# @example Find the air traffic from
|
|
28
|
+
# @example Find the air traffic from Nice in August 2017
|
|
27
29
|
# amadeus.travel.analytics.air_traffic.traveled.get(
|
|
28
|
-
#
|
|
29
|
-
# period: '2017-
|
|
30
|
+
# originCityCode: 'NCE',
|
|
31
|
+
# period: '2017-08'
|
|
30
32
|
# )
|
|
31
33
|
#
|
|
32
34
|
def get(params = {})
|
data/lib/amadeus/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: amadeus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Amadeus
|
|
8
8
|
- Cristiano Betta
|
|
9
|
+
- Anthony Roux
|
|
9
10
|
autorequire:
|
|
10
11
|
bindir: exe
|
|
11
12
|
cert_chain: []
|
|
12
|
-
date: 2018-
|
|
13
|
+
date: 2018-11-12 00:00:00.000000000 Z
|
|
13
14
|
dependencies:
|
|
14
15
|
- !ruby/object:Gem::Dependency
|
|
15
16
|
name: awesome_print
|
|
@@ -113,16 +114,16 @@ dependencies:
|
|
|
113
114
|
name: rubocop
|
|
114
115
|
requirement: !ruby/object:Gem::Requirement
|
|
115
116
|
requirements:
|
|
116
|
-
- -
|
|
117
|
+
- - '='
|
|
117
118
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '0.
|
|
119
|
+
version: '0.59'
|
|
119
120
|
type: :development
|
|
120
121
|
prerelease: false
|
|
121
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
123
|
requirements:
|
|
123
|
-
- -
|
|
124
|
+
- - '='
|
|
124
125
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: '0.
|
|
126
|
+
version: '0.59'
|
|
126
127
|
- !ruby/object:Gem::Dependency
|
|
127
128
|
name: simplecov
|
|
128
129
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -185,10 +186,12 @@ description: |2
|
|
|
185
186
|
email:
|
|
186
187
|
- developer@amadeus.com
|
|
187
188
|
- cristiano@betta.io
|
|
189
|
+
- anthony.roux@amadeus.com
|
|
188
190
|
executables: []
|
|
189
191
|
extensions: []
|
|
190
192
|
extra_rdoc_files: []
|
|
191
193
|
files:
|
|
194
|
+
- ".rubocop_todo.yml"
|
|
192
195
|
- CHANGELOG.md
|
|
193
196
|
- LICENSE
|
|
194
197
|
- README.md
|
|
@@ -228,8 +231,9 @@ files:
|
|
|
228
231
|
- lib/amadeus/namespaces/travel/analytics/air_traffic.rb
|
|
229
232
|
- lib/amadeus/namespaces/travel/analytics/air_traffic/booked.rb
|
|
230
233
|
- lib/amadeus/namespaces/travel/analytics/air_traffic/busiest_period.rb
|
|
234
|
+
- lib/amadeus/namespaces/travel/analytics/air_traffic/searched.rb
|
|
235
|
+
- lib/amadeus/namespaces/travel/analytics/air_traffic/searched_by_destination.rb
|
|
231
236
|
- lib/amadeus/namespaces/travel/analytics/air_traffic/traveled.rb
|
|
232
|
-
- lib/amadeus/namespaces/travel/analytics/fare_searches.rb
|
|
233
237
|
- lib/amadeus/version.rb
|
|
234
238
|
homepage: https://github.com/amadeus4dev/amadeus-ruby
|
|
235
239
|
licenses:
|
|
@@ -251,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
251
255
|
version: '0'
|
|
252
256
|
requirements: []
|
|
253
257
|
rubyforge_project:
|
|
254
|
-
rubygems_version: 2.7.
|
|
258
|
+
rubygems_version: 2.7.8
|
|
255
259
|
signing_key:
|
|
256
260
|
specification_version: 4
|
|
257
261
|
summary: Amadeus travel APIs
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Amadeus
|
|
4
|
-
module Namespaces
|
|
5
|
-
class Travel
|
|
6
|
-
class Analytics
|
|
7
|
-
# A namespaced client for the
|
|
8
|
-
# +/v1/travel/analytics/fare-searches+ endpoints
|
|
9
|
-
#
|
|
10
|
-
# Access via the +Amadeus::Client+ object
|
|
11
|
-
#
|
|
12
|
-
# amadeus = Amadeus::Client.new
|
|
13
|
-
# amadeus.travel.analytics.fare_searches
|
|
14
|
-
#
|
|
15
|
-
class FareSearches < Amadeus::Client::Decorator
|
|
16
|
-
# The Fare Search History API allows to find the number of
|
|
17
|
-
# estimated searches from an origin, optionally a destination,
|
|
18
|
-
# within a time period when travelers are performing the searches.
|
|
19
|
-
#
|
|
20
|
-
# @option params [String] :origin IATA code of the origin city
|
|
21
|
-
# e.g. BOS for Boston - required
|
|
22
|
-
# @option params [String] :sourceCountry IATA code of the
|
|
23
|
-
# country from which fare searches were made - e.g. US for
|
|
24
|
-
# United States
|
|
25
|
-
# @option params [String] :period period of search; can be a year
|
|
26
|
-
# or a month or a week. ISO format must be used - e.g. 2015
|
|
27
|
-
# for year; 2015-05 for month and 2015-W04 for week. Period
|
|
28
|
-
# ranges are not supported. Only periods from year 2011-01 up
|
|
29
|
-
# to current year and previous month or week are valid. Future
|
|
30
|
-
# dates are not supported.
|
|
31
|
-
# @return [Amadeus::Response] a parsed response
|
|
32
|
-
# @raise [Amadeus::Base] an exception if the call failed
|
|
33
|
-
# @example Find the fare searches for LHR, made from France in 2011
|
|
34
|
-
# amadeus.travel.analytics.fare_searches.get(
|
|
35
|
-
# origin: 'LHR',
|
|
36
|
-
# sourceCountry: 'FR'
|
|
37
|
-
# period: '2011'
|
|
38
|
-
# )
|
|
39
|
-
def get(params = {})
|
|
40
|
-
client.get('/v1/travel/analytics/fare-searches', params)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|