class PostcodeValidation::Gateway::PCAPotentialAddressMatch

Constants

KEY

Public Instance Methods

query(search_term:, country:) click to toggle source
# File lib/postcode_validation/gateway/pca_potential_address_match.rb, line 11
def query(search_term:, country:)
  response = find_postcode(country, search_term)

  response.map do |row|
    raise PCARequestError, error_message(row) if row.key?('Error')

    PostcodeValidation::Domain::PotentialAddressMatch.new(text: row['Text'],
                                                          description: row['Description'])
  end
end

Private Instance Methods

error_message(row) click to toggle source
# File lib/postcode_validation/gateway/pca_potential_address_match.rb, line 24
def error_message(row)
  "#{row['Error']} #{row['Cause']} #{row['Resolution']}"
end
find_postcode(country, search_term) click to toggle source
# File lib/postcode_validation/gateway/pca_potential_address_match.rb, line 28
def find_postcode(country, search_term)
  JSON.parse(self.class.get('/Capture/Interactive/Find/v1.00/json.ws', lookup_parameters(country, search_term)).body)
end
lookup_parameters(country, search_term) click to toggle source
# File lib/postcode_validation/gateway/pca_potential_address_match.rb, line 32
def lookup_parameters(country, search_term)
  {
    query: {
      Key: KEY,
      Countries: country,
      Text: search_term
    }
  }
end