require_relative 'apis/noaa_station'
require 'nokogiri'

module Barometer
  module Query
    module Service
      class NoaaStation
        def self.fetch(query)
          converted_query = query.get_conversion(:coordinates)
          return unless converted_query

          api = NoaaStation::Api.new(converted_query)
          _parse_content(api.get)
        end

        def self._parse_content(content)
          doc = Nokogiri::HTML.parse(content)
          if doc && links = doc.search(".current-conditions-extra a")
            sid_link = links.detect{|link| link.attr("href").match(/sid=(.*)&/)}
            sid_link.attr("href").match(/sid=(.*?)&/)[1]
          end
        rescue
          nil
        end
      end
    end
  end
end