Class: PostcodeValidation::Gateway::PCAAddressList

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/postcode_validation/gateway/pca_address_list.rb

Defined Under Namespace

Classes: PCARequestError

Constant Summary collapse

KEY =
ENV['POSTCODE_ANYWHERE_KEY']

Instance Method Summary collapse

Instance Method Details

#query(search_term:, country:, more_results_id: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/postcode_validation/gateway/pca_address_list.rb', line 11

def query(search_term:, country:, more_results_id: nil)
  address_list_for_postcode(country, search_term, more_results_id).map do |row|
    raise PCARequestError, error_message(row) if row.key?('Error')

    if row['Type'] == 'Postcode'
      self.class.new.query(
        country: country,
        search_term: search_term,
        more_results_id: row['Id']
      )
    elsif row['Type'] == 'Address'
      PostcodeValidation::Domain::Address.new(row: row, key: KEY)
    end
  end.compact.flatten
end