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