You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							1.1 KiB
						
					
					
				require "net/http" | 
						|
 | 
						|
class UprnDataPresenter | 
						|
  attr_reader :data | 
						|
 | 
						|
  def initialize(data) | 
						|
    @data = data | 
						|
  end | 
						|
 | 
						|
  def postcode | 
						|
    result_from_lpi? ? data["POSTCODE_LOCATOR"] : data["POSTCODE"] | 
						|
  end | 
						|
 | 
						|
  def address_line1 | 
						|
    if result_from_lpi? | 
						|
      data.values_at( | 
						|
        "ORGANISATION", | 
						|
        "SAO_TEXT", | 
						|
        "PAO_START_NUMBER", | 
						|
        "STREET_DESCRIPTION", | 
						|
        "LOCALITY_NAME", | 
						|
        "ADMINISTRATIVE_AREA", | 
						|
      ).compact | 
						|
       .join(", ") | 
						|
       .titleize | 
						|
    else | 
						|
      data.values_at( | 
						|
        "PO_BOX_NUMBER", | 
						|
        "ORGANISATION_NAME", | 
						|
        "DEPARTMENT_NAME", | 
						|
        "SUB_BUILDING_NAME", | 
						|
        "BUILDING_NAME", | 
						|
        "BUILDING_NUMBER", | 
						|
        "DEPENDENT_THOROUGHFARE_NAME", | 
						|
        "THOROUGHFARE_NAME", | 
						|
      ).compact | 
						|
       .join(", ") | 
						|
       .titleize | 
						|
    end | 
						|
  end | 
						|
 | 
						|
  def address_line2 | 
						|
    data.values_at( | 
						|
      "DOUBLE_DEPENDENT_LOCALITY", "DEPENDENT_LOCALITY" | 
						|
    ).compact | 
						|
     .join(", ") | 
						|
     .titleize | 
						|
     .presence | 
						|
  end | 
						|
 | 
						|
  def town_or_city | 
						|
    result_from_lpi? ? data["TOWN_NAME"].titleize : data["POST_TOWN"].titleize | 
						|
  end | 
						|
 | 
						|
  def result_from_lpi? | 
						|
    data["LPI_KEY"].present? | 
						|
  end | 
						|
end
 | 
						|
 |