diff --git a/lib/geocoder/lookups/location_iq.rb b/lib/geocoder/lookups/location_iq.rb index 3773d4063a2770781f75c9447ebd2487f00ac1c3..d9fb0659bc8d49bb41cb487a02fb1a6b0ebabccc 100644 --- a/lib/geocoder/lookups/location_iq.rb +++ b/lib/geocoder/lookups/location_iq.rb @@ -13,15 +13,15 @@ module Geocoder::Lookup def query_url(query) method = query.reverse_geocode? ? "reverse" : "search" - "#{protocol}://locationiq.org/v1/#{method}.php?key=#{configuration.api_key}&" + url_query_string(query) - end - - def supported_protocols - [:http, :https] + "#{protocol}://#{configured_host}/v1/#{method}.php?key=#{configuration.api_key}&" + url_query_string(query) end private + def configured_host + configuration[:host] || "locationiq.org" + end + def results(query) return [] unless doc = fetch_data(query) diff --git a/lib/geocoder/lookups/nominatim.rb b/lib/geocoder/lookups/nominatim.rb index 18a203001e95a552703c4d5a52707c10b6614467..cee363a53514ea8e8626db7fd6d4151895b1ca0f 100644 --- a/lib/geocoder/lookups/nominatim.rb +++ b/lib/geocoder/lookups/nominatim.rb @@ -14,15 +14,23 @@ module Geocoder::Lookup def query_url(query) method = query.reverse_geocode? ? "reverse" : "search" - host = configuration[:host] || "nominatim.openstreetmap.org" - "#{protocol}://#{host}/#{method}?" + url_query_string(query) + "#{protocol}://#{configured_host}/#{method}?" + url_query_string(query) end - def supported_protocols - [:https] + private # --------------------------------------------------------------- + + def configured_host + configuration[:host] || "nominatim.openstreetmap.org" end - private # --------------------------------------------------------------- + def use_ssl? + # nominatim.openstreetmap.org redirects HTTP requests to HTTPS + if configured_host == "nominatim.openstreetmap.org" + true + else + super + end + end def results(query) return [] unless doc = fetch_data(query) diff --git a/test/unit/lookups/nominatim_test.rb b/test/unit/lookups/nominatim_test.rb index c75cf45893ccf4b9f70a40047940b42a990a7a27..27d2d1d707e7685d99bc28c1bb4e91cf8c44e0cc 100644 --- a/test/unit/lookups/nominatim_test.rb +++ b/test/unit/lookups/nominatim_test.rb @@ -37,7 +37,7 @@ class NominatimTest < GeocoderTestCase def test_host_configuration Geocoder.configure(nominatim: {host: "local.com"}) query = Geocoder::Query.new("Bluffton, SC") - assert_match %r(https://local\.com), query.url + assert_match %r(http://local\.com), query.url end def test_raises_exception_when_over_query_limit