class DefraRuby::Address::EaAddressFacadeRequest

Attributes

param_name[R]
postcode[R]

Public Class Methods

new(param_name) click to toggle source
# File lib/defra_ruby/address/ea_address_facade_request.rb, line 7
def initialize(param_name)
  @param_name = param_name
end

Public Instance Methods

execute(postcode) click to toggle source
# File lib/defra_ruby/address/ea_address_facade_request.rb, line 11
def execute(postcode)
  @postcode = postcode
  Response.new(response_exe)
end

Private Instance Methods

response_exe() click to toggle source
# File lib/defra_ruby/address/ea_address_facade_request.rb, line 32
def response_exe
  lambda do
    response = RestClient::Request.execute(
      method: :get,
      url: url,
      timeout: DefraRuby::Address.configuration.timeout
    )
    results = JSON.parse(response)["results"]

    raise DefraRuby::Address::NoMatchError if results.empty?

    results
  end
end
url() click to toggle source
# File lib/defra_ruby/address/ea_address_facade_request.rb, line 20
def url
  host = DefraRuby::Address.configuration.host
  client_id = DefraRuby::Address.configuration.client_id
  key = DefraRuby::Address.configuration.key

  File.join(
    host,
    "/address-service/v1/addresses/",
    "postcode?client-id=#{client_id}&key=#{key}&#{param_name}=#{postcode}"
  )
end