Class: Skyscanner::SkyscannerApi
- Inherits:
-
Object
- Object
- Skyscanner::SkyscannerApi
- Defined in:
- lib/movlog/skyscanner_api.rb
Overview
Service for all SkyScanner API calls
Constant Summary collapse
- SKY_URL =
'http://partners.api.skyscanner.net/apiservices/browsedates/'
- API_VER =
'v1.0'
- SKY_API_URL =
URI.join(SKY_URL, "#{API_VER}/")
Class Method Summary collapse
- .config ⇒ Object
- .config=(credentials) ⇒ Object
- .route_date_param(outbound, inbound) ⇒ Object
- .route_env_param(market, currency, locale) ⇒ Object
- .route_info_url(data) ⇒ Object
- .route_place_param(origin, destination) ⇒ Object
- .routes_info(data) ⇒ Object
Class Method Details
.config ⇒ Object
16 17 18 19 20 21 |
# File 'lib/movlog/skyscanner_api.rb', line 16 def self.config return @config if @config @config = { api_key: ENV['SKY_API_KEY'] } end |
.config=(credentials) ⇒ Object
11 12 13 14 |
# File 'lib/movlog/skyscanner_api.rb', line 11 def self.config=(credentials) @config = {} unless @config @config.update(credentials) end |
.route_date_param(outbound, inbound) ⇒ Object
52 53 54 |
# File 'lib/movlog/skyscanner_api.rb', line 52 def self.route_date_param(outbound, inbound) "#{outbound}/#{inbound}" end |
.route_env_param(market, currency, locale) ⇒ Object
44 45 46 |
# File 'lib/movlog/skyscanner_api.rb', line 44 def self.route_env_param(market, currency, locale) "#{market}/#{currency}/#{locale}/" end |
.route_info_url(data) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/movlog/skyscanner_api.rb', line 35 def self.route_info_url(data) URI.join( SKY_API_URL, route_env_param(data[:market], data[:currency], data[:locale]), route_place_param(data[:origin], data[:destination]), route_date_param(data[:outbound], data[:inbound]) ) end |
.route_place_param(origin, destination) ⇒ Object
48 49 50 |
# File 'lib/movlog/skyscanner_api.rb', line 48 def self.route_place_param(origin, destination) "#{origin}/#{destination}/" end |
.routes_info(data) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/movlog/skyscanner_api.rb', line 23 def self.routes_info(data) skyscanner_routes_response = HTTP.get( route_info_url(data), params: { apiKey: config[:api_key] } ) JSON.parse(skyscanner_routes_response.to_s) end |