class PSClient::Api

Public Class Methods

new(args={ :base_uri => DEFAULT_URI }) click to toggle source
Calls superclass method PSClient::BaseApi::new
# File lib/ps_pop_client/client.rb, line 6
def initialize(args={ :base_uri => DEFAULT_URI })
  super(args)
end

Public Instance Methods

find(req={}) click to toggle source
# File lib/ps_pop_client/client.rb, line 10
def find(req={}) 
  begin
    parsed_req = parse_req_to_symbols(req)
    check_request(parsed_req)
    uri = encode_uri(parsed_req)
    response = request(uri)
    check_status(response)
    fitlered_response = filter_records(parsed_req, response)
    return Response.new(fitlered_response).parse
  rescue => e
    return Response.new(e).parse_error
  end
end

Private Instance Methods

check_request(req) click to toggle source
# File lib/ps_pop_client/client.rb, line 37
def check_request(req)
  RequestUtil.validate_find_request(req)
end
check_status(response) click to toggle source
# File lib/ps_pop_client/client.rb, line 25
def check_status(response)
  return if (200..299).cover?(response.code.to_i)
  raise Error.new(response.message, response.code)
end
encode_uri(req) click to toggle source
# File lib/ps_pop_client/client.rb, line 40
def encode_uri(req)
  cbsa_ids_uri = (req.keys.include?(:cbsa_ids) && req[:cbsa_ids].kind_of?(Array)) ? req[:cbsa_ids].inject("") { |s, a| s + "cbsa_ids[]=" + a.to_s + "&" } : ""
  zipcodes_uri = (req.keys.include?(:zip_codes) && req[:zip_codes].kind_of?(Array)) ? req[:zip_codes].inject("") { |s, a| s + "zip_codes[]=" + a.to_s + "&" } : ""
  name = (req.keys.include?(:name) && req[:name].kind_of?(String)) ? "name=" + req[:name] : ""
  "/api/v1/cbsa/find?" + cbsa_ids_uri + zipcodes_uri + name
end
filter_records(req, response) click to toggle source
# File lib/ps_pop_client/client.rb, line 30
def filter_records(req, response) 
  ResponseUtil.filter_records(req, response)
end
parse_req_to_symbols(req) click to toggle source
# File lib/ps_pop_client/client.rb, line 34
def parse_req_to_symbols(req)
  RequestUtil.parse_to_symbol(req)
end