class UkPostcodesIo::MultiLookup

Attributes

postcodes[R]

Public Class Methods

new(postcodes) click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 5
def initialize(postcodes)
  @postcodes = postcodes
end

Public Instance Methods

build_data_from_body_result() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 13
def build_data_from_body_result
  return unless body['result']
  body['result'].each_with_object({}) do |item, hash|
    hash[item['query']] = item['result'] ? OpenStruct.new(item['result']) : nil
  end
end
data() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 9
def data
  @data ||= build_data_from_body_result
end
make_request() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 28
def make_request
  request.body = { postcodes: postcodes }.to_json
  Net::HTTP.start(uri.hostname, uri.port) do |http|
    http.request(request)
  end
end
request() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 24
def request
  @request ||= Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
end
response() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 20
def response
  @response ||= make_request
end
uri() click to toggle source
# File lib/uk_postcodes_io/multi_lookup.rb, line 35
def uri
  URI(API_URL)
end