Class: Skyscanner::SkyscannerApi

Inherits:
Object
  • Object
show all
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

Class Method Details

.configObject



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