module Openaq::Networking
Constants
- PARAMS
Public Instance Methods
get(path, params = PARAMS)
click to toggle source
@raise [Openaq::Error] if the request is not successful
# File lib/openaq/networking.rb, line 11 def get(path, params = PARAMS) uri = build_uri(path, params) response = Net::HTTP.get_response(uri) parsed_response = JSON.parse(response.body) if not response.is_a?(Net::HTTPSuccess) err_msg = "#{parsed_response['error']}, #{parsed_response['message']}" raise Openaq::Error, err_msg end parsed_response['results'] end
paginated_get(path, params = PARAMS)
click to toggle source
@raise [StopIteration] when there are no more results @raise [Openaq::Error] if the request is not successful
# File lib/openaq/networking.rb, line 26 def paginated_get(path, params = PARAMS) Enumerator.new do |yielder| page = 1 params = { page: page }.merge(params) loop do response = get(path, params) if !response.empty? response.map { |item| yielder << item } params[:page] += 1 else raise StopIteration end end end.lazy end
Private Instance Methods
build_uri(path, params)
click to toggle source
# File lib/openaq/networking.rb, line 45 def build_uri(path, params) uri = URI(Openaq.url + path) uri.query = URI.encode_www_form(params) uri end