Module: ResponseUtil

Defined in:
lib/ps_pop_client/tools/response_util.rb

Class Method Summary collapse

Class Method Details

.compare_zipcodes(a, b) ⇒ Object



30
31
32
# File 'lib/ps_pop_client/tools/response_util.rb', line 30

def self.compare_zipcodes(a, b)
  (a&b).size  > 0 
end

.filter_by_zipcodes(a_for, a_against) ⇒ Object



2
3
4
5
6
7
8
# File 'lib/ps_pop_client/tools/response_util.rb', line 2

def self.filter_by_zipcodes(a_for, a_against)
  return [] if !a_for.kind_of?(Array) || a_for.count == 0
  result = a_for.select do |e|
    a_against.include?(e)
  end
  return result
end

.filter_records(req, response) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ps_pop_client/tools/response_util.rb', line 10

def self.filter_records(req,response)
  return response unless req[:zip_codes].kind_of?(Array)
  res_body = JSON.parse(response.body)
  records = res_body["data"]["records"]
    records.each do |record|
      if self.should_filter?(req[:cbsa_ids], record["cbsa_id"],record["zip_code"], req[:zip_codes]) 
        record["zip_code"] = self.filter_by_zipcodes(record["zip_code"], req[:zip_codes])
      end 
    end 
  res_body["data"]["records"] = records
  res_body["data"]["count"] = records.length
  response.body = JSON.generate(res_body)
  return response
end

.should_filter?(cbsa_ids_array, cbsa_id, res_zipcodes, req_zipcodes) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
# File 'lib/ps_pop_client/tools/response_util.rb', line 25

def self.should_filter?(cbsa_ids_array, cbsa_id, res_zipcodes,req_zipcodes)
  cbsa_ids = !cbsa_ids_array ? [] : cbsa_ids_array
  !(cbsa_ids.include? cbsa_id.to_i) && self.compare_zipcodes(res_zipcodes,req_zipcodes)
end