Class: MockSearch

Inherits:
Object
  • Object
show all
Defined in:
lib/mock_search.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site, env, cabotage, params = {}) ⇒ MockSearch

Returns a new instance of MockSearch.



11
12
13
14
15
16
# File 'lib/mock_search.rb', line 11

def initialize(site,env,cabotage,params={})
  @site  = site 
  @host  = generar_host(site,env)
  @cabotage = (cabotage=='true')
  @json = nil
end

Instance Attribute Details

#adtObject (readonly)

Returns the value of attribute adt.



9
10
11
# File 'lib/mock_search.rb', line 9

def adt
  @adt
end

#cabotageObject (readonly)

Returns the value of attribute cabotage.



9
10
11
# File 'lib/mock_search.rb', line 9

def cabotage
  @cabotage
end

#cnnObject (readonly)

Returns the value of attribute cnn.



9
10
11
# File 'lib/mock_search.rb', line 9

def cnn
  @cnn
end

#hostObject (readonly)

Returns the value of attribute host.



9
10
11
# File 'lib/mock_search.rb', line 9

def host
  @host
end

#infObject (readonly)

Returns the value of attribute inf.



9
10
11
# File 'lib/mock_search.rb', line 9

def inf
  @inf
end

#itineraryObject (readonly)

Returns the value of attribute itinerary.



9
10
11
# File 'lib/mock_search.rb', line 9

def itinerary
  @itinerary
end

#jsonObject (readonly)

Returns the value of attribute json.



9
10
11
# File 'lib/mock_search.rb', line 9

def json
  @json
end

Instance Method Details

#digest_md5Object



118
119
120
# File 'lib/mock_search.rb', line 118

def digest_md5()
  return Digest::MD5.hexdigest(self.generate_url_results_search+"despegar")
end

#generar_host(site, env) ⇒ Object

genero el host de la url a la cual nos vamos a conectar, se genera a partir del pais y ambiente enviados como parametros.



19
20
21
22
# File 'lib/mock_search.rb', line 19

def generar_host(site,env)
  host = YAML.load(File.open("features/data/host.yml"))
  return host[site][env]
end

#generate_post_alert_urlObject



38
39
40
# File 'lib/mock_search.rb', line 38

def generate_post_alert_url()
  return @host + "/subscriptions-ui/subscriptions/price-alert-by-month/add"
end

#generate_url_checkoutObject



113
114
115
116
# File 'lib/mock_search.rb', line 113

def generate_url_checkout()
  self.get_ticket_date()
  return @host.gsub('http','https') + "/book/flights/checkout/#{@result_hash['search_hash']}/#{@result_hash['search_version']}/#{@result_hash['itinerary_hash']}/"
end

#generate_url_landing_airline(code, dest) ⇒ Object

genero la url de resultados de landing para filtrar por aerolinea



43
44
45
46
47
48
49
# File 'lib/mock_search.rb', line 43

def generate_url_landing_airline(code,dest)
  path = case @site
          when "BR" then "/passagens-aereas/companhiasaerea"
          else "/vuelos/aerolinea"
        end
    return @host + path + "/#{dest}/#{code}/vuelos"
end

#generate_url_landing_arrival_airport(dest) ⇒ Object

genero la url de resultados de landing para filtrar por aeropuerto destino



52
53
54
55
56
57
58
# File 'lib/mock_search.rb', line 52

def generate_url_landing_arrival_airport(dest)
  path = case @site
          when "BR" then "/passagens-aereas/aeroporto"
          else "/vuelos/aeropuerto"
        end
    return @host + path + "/#{dest}/vuelos"
end

#generate_url_landing_disambiguation_airports(city) ⇒ Object

genero una url para ingresar a desambiguacion de aeropuertos



70
71
72
73
74
# File 'lib/mock_search.rb', line 70

def generate_url_landing_disambiguation_airports(city)
  @path = "#{@city_from_1.code}/#{city}/"
  landing = (@site == "BR" ? "/passagens-aereas/" : "/vuelos/")
  return @host + landing + @path
end

#generate_url_landing_origin_airport(origin, dest) ⇒ Object

genero la url de resultados de landing para filtrar por aeropuerto origen



61
62
63
64
65
66
67
# File 'lib/mock_search.rb', line 61

def generate_url_landing_origin_airport(origin,dest)
  path = case @site
          when "BR" then "/passagens-aereas/aeroporto"
          else "/vuelos/aeropuerto"
        end
    return @host + path + "/#{origin}/#{dest}/vuelos"
end

#get_childrensObject



76
77
78
# File 'lib/mock_search.rb', line 76

def get_childrens
  @cnn + @inf
end

#get_results_search_service(type = "TOTALFARE") ⇒ Object



93
94
95
96
97
98
99
100
# File 'lib/mock_search.rb', line 93

def get_results_search_service(type="TOTALFARE")
  set_header_json({"referer"=>self.generate_url_results_search})
  set_header_json({"User-Agent"=>"Mozilla\/5.0"})
  unless @json
    @json = HTTParty.get(self.generate_url_results_search_service(type),:headers => @header)
  end  
  return @json
end

#get_ticket_dateObject



102
103
104
105
106
107
108
109
110
111
# File 'lib/mock_search.rb', line 102

def get_ticket_date()
  @result_hash = {}

  json      = self.get_results_search_service
  @itinerary = json['result']['data']['items'][0]
  ticket    = json['result']['data']['metadata']['ticket']

  @result_hash['search_hash']    = ticket['id']
  @result_hash['search_version'] = ticket['version']
end

#paginate(page) ⇒ Object



122
123
124
125
# File 'lib/mock_search.rb', line 122

def paginate(page)
  json  = self.get_results_search_service
  return HTTParty.get(self.generate_url_results_search_paginate_service(page,json['result']['data']['metadata']['ticket']['id']))
end

#passengersObject



24
25
26
27
28
29
# File 'lib/mock_search.rb', line 24

def passengers()
@adt = [1,2,3][rand(3)]
  @cnn = [0,1,2][rand(@adt)]
  @inf = [0,1,2][rand(@adt-@cnn)]   
  return "#{@adt}/#{@cnn}/#{@inf}"
end

#reset_jsonObject



127
128
129
# File 'lib/mock_search.rb', line 127

def reset_json
  @json = nil
end

#set_from_city(code) ⇒ Object



80
81
82
# File 'lib/mock_search.rb', line 80

def set_from_city(code)
  @city_from_1 = MockCity.new(@site,code)
end

#set_header_json(header = {}) ⇒ Object



88
89
90
91
# File 'lib/mock_search.rb', line 88

def set_header_json(header={})
  @header ||= {} 
  @header.merge!(header)
end

#set_to_city(code) ⇒ Object



84
85
86
# File 'lib/mock_search.rb', line 84

def set_to_city(code)
  @city_to_1 = MockCity.new(@site,code)
end

#to_city_change(site) ⇒ Object



31
32
33
34
35
36
# File 'lib/mock_search.rb', line 31

def to_city_change(site)
  unless site == @site
    @city_to_1 = MockCity.new(site)
    @path    = @path.gsub(/^...\/...\//,"#{@city_from_1.code}/#{@city_to_1.code}/")
  end  
end