Class: HotelPrice::Jalan::JalanAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/hotel_price/jalan/jalan_api.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ JalanAPI

Returns a new instance of JalanAPI.



5
6
7
8
9
10
# File 'lib/hotel_price/jalan/jalan_api.rb', line 5

def initialize params
  @config = {
    jalan_hotel_id: params[:jalan_hotel_id] ||= 0,
    jalan_api_key: params[:jalan_api_key] ||= ENV["JALAN_API_KEY"]
  }
end

Instance Method Details

#get_min_price(params) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/hotel_price/jalan/jalan_api.rb', line 16

def get_min_price params
  url = "http://jws.jalan.net/APIAdvance/StockSearch/V1/?key=#{@config[:jalan_api_key]}&h_id=#{@config[:jalan_hotel_id]}&stay_date=#{params[:checkin_date]}&stay_count=1&adult_num=#{params[:adult_num]}&count=1"
  doc = Nokogiri::XML(url)
  if doc.css("NumberOfResults").text == "0"
    {
      date: DateTime.now.strftime("%Y-%m-%d"),
      jalan_hotel_id: @config[:jalan_hotel_id],
      checkin_date: params[:checkin_date],
      plan_num: 0,
      min_price: 0
    }
  else
    {
      date: DateTime.now.strftime("%Y-%m-%d"),
      jalan_hotel_id: @config[:jalan_hotel_id],
      checkin_date: params[:checkin_date],
      hotel_name: doc.css("Plan").css("Hotel HotelName").text,
      room_name: doc.css("Plan").css("RoomName").text,
      plan_name: doc.css("Plan").css("PlanName").text,
      plan_num: doc.css("NumberOfResults").text,
      min_price: doc.css("Plan").css("Stay Rate").text
    }
  end
end

#testObject



12
13
14
# File 'lib/hotel_price/jalan/jalan_api.rb', line 12

def test
  @config[:jalan_api_key]
end