class Skyscanner::SkyscannerApi

Service for all SkyScanner API calls

Constants

API_VER
SKY_API_URL
SKY_URL

Public Class Methods

config() click to toggle source
# 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) click to toggle source
# File lib/movlog/skyscanner_api.rb, line 11
def self.config=(credentials)
  @config = {} unless @config
  @config.update(credentials)
end
routes_info(data) click to toggle source
# 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

Private Class Methods

route_date_param(outbound, inbound) click to toggle source
# File lib/movlog/skyscanner_api.rb, line 52
def self.route_date_param(outbound, inbound)
  "#{outbound}/#{inbound}"
end
route_env_param(market, currency, locale) click to toggle source
# File lib/movlog/skyscanner_api.rb, line 44
def self.route_env_param(market, currency, locale)
  "#{market}/#{currency}/#{locale}/"
end
route_info_url(data) click to toggle source
# 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) click to toggle source
# File lib/movlog/skyscanner_api.rb, line 48
def self.route_place_param(origin, destination)
  "#{origin}/#{destination}/"
end