class Geocoder::Lookup::DbIpCom

def name

def name
  'DB-IP.com'
end

def query_url(query)

def query_url(query)
  query_params = if query.options[:params]
    "?#{url_query_string(query)}"
  end
  "#{protocol}://api.db-ip.com/v2/#{configuration.api_key}/#{query.sanitized_text}#{query_params}"
end

def required_api_key_parts

def required_api_key_parts
  ['api_key']
end

def results(query)

def results(query)
  return [] unless (doc = fetch_data(query))
  case doc['error']
  when 'maximum number of queries per day exceeded'
    raise_error Geocoder::OverQueryLimitError ||
                Geocoder.log(:warn, 'DB-API query limit exceeded.')
  when 'invalid API key'
    raise_error Geocoder::InvalidApiKey ||
                Geocoder.log(:warn, 'Invalid DB-IP API key.')
  when nil
    [doc]
  else
    raise_error Geocoder::Error ||
                Geocoder.log(:warn, "Request failed: #{doc['error']}")
  end
end

def supported_protocols

def supported_protocols
  [:https, :http]
end