class AirCondition

Attributes

data[RW]

Public Instance Methods

request_api_area(api_key, area_name) { |false, body| ... } click to toggle source
# File lib/air-condition-api.rb, line 21
def request_api_area(api_key, area_name)
  
  param = Hash.new
  param["serviceKey"] = URI.unescape(api_key)
  param["sidoName"] = area_name
  param["ver"] = 1.3

  uri = URI.parse(API_AREA)
  uri.query = URI.encode_www_form(param)

  response = Net::HTTP.get_response(uri)

  unless response.code.to_i == 200

    yield false, response.body

    return
  end
 
  # parse data
  xml_data = Oga.parse_xml(response.body)
  self.data = Array.new

  xml_data.xpath('response/body/items/item').each do |item|

    station_name = item.at_xpath('stationName').text
    condition_day = item.at_xpath('pm10Grade').text.to_i
    condition_hour = item.at_xpath('pm10Grade1H').text.to_i

    self.data.push ConditionData.new(station_name, condition_day, condition_hour)
  end

  yield true, nil

end