class Geocoder::Lookup::Pelias

def results(query)

def results(query)
  return [] unless doc = fetch_data(query)
  # not all responses include a meta
  if doc['meta']
    error = doc.fetch('results', {}).fetch('error', {})
    message = error.fetch('type', 'Unknown Error') + ': ' + error.fetch('message', 'No message')
    log_message = 'Pelias Geocoding API error - ' + message
    case doc['meta']['status_code']
      when '200'
        # nothing to see here
      when '403'
        raise_error(Geocoder::RequestDenied, message) || Geocoder.log(:warn, log_message)
      when '429'
        raise_error(Geocoder::OverQueryLimitError, message) || Geocoder.log(:warn, log_message)
      else
        raise_error(Geocoder::Error, message) || Geocoder.log(:warn, log_message)
    end
  end
  doc['features'] || []
end