class Geocoder::Lookup::UkOrdnanceSurveyNames

def base_query_url(query)

def base_query_url(query)
  "#{protocol}://api.os.uk/search/names/v1/find?"
end

def filter

def filter
  local_types.map { |t| "local_type:#{t}" }.join(' ')
end

def local_types

def local_types
  %w[
    City
    Hamlet
    Other_Settlement
    Town
    Village
    Postcode
  ]
end

def name

def name
  'Ordance Survey Names'
end

def query_url(query)

def query_url(query)
  base_query_url(query) + url_query_string(query)
end

def query_url_params(query)

def query_url_params(query)
  {
    query: query.sanitized_text,
    key: configuration.api_key,
    fq: filter
  }.merge(super)
end

def required_api_key_parts

def required_api_key_parts
  ["key"]
end

def results(query)

def results(query)
  return [] unless doc = fetch_data(query)
  return [] if doc['header']['totalresults'].zero?
  return doc['results'].map { |r| r['GAZETTEER_ENTRY'] }
end

def supported_protocols

def supported_protocols
  [:https]
end