Class: UkPostcodesIo::MultiLookup
- Inherits:
-
Lookup
- Object
- Lookup
- UkPostcodesIo::MultiLookup
show all
- Defined in:
- lib/uk_postcodes_io/multi_lookup.rb
Constant Summary
Constants inherited
from Lookup
Lookup::API_URL
Instance Attribute Summary collapse
Attributes inherited from Lookup
#postcode
Instance Method Summary
collapse
Methods inherited from Lookup
#body, #error, #status, #success?
Constructor Details
#initialize(postcodes) ⇒ MultiLookup
Returns a new instance of MultiLookup.
5
6
7
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 5
def initialize(postcodes)
@postcodes = postcodes
end
|
Instance Attribute Details
#postcodes ⇒ Object
Returns the value of attribute postcodes.
4
5
6
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 4
def postcodes
@postcodes
end
|
Instance Method Details
#build_data_from_body_result ⇒ Object
13
14
15
16
17
18
|
# 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 ⇒ Object
9
10
11
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 9
def data
@data ||= build_data_from_body_result
end
|
#make_request ⇒ Object
28
29
30
31
32
33
|
# 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 ⇒ Object
24
25
26
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 24
def request
@request ||= Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
end
|
#response ⇒ Object
20
21
22
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 20
def response
@response ||= make_request
end
|
#uri ⇒ Object
35
36
37
|
# File 'lib/uk_postcodes_io/multi_lookup.rb', line 35
def uri
URI(API_URL)
end
|