diff --git a/app/controllers/address_search_controller.rb b/app/controllers/address_search_controller.rb index 1e225525a..616d5b702 100644 --- a/app/controllers/address_search_controller.rb +++ b/app/controllers/address_search_controller.rb @@ -18,7 +18,7 @@ class AddressSearchController < ApplicationController end elsif query.match?(/[a-zA-Z]/) # Query contains letters, assume it's an address - service = AddressClient.new(query) + service = AddressClient.new(query, { minmatch: 0.2 }) service.call if service.error.present? @@ -32,7 +32,7 @@ class AddressSearchController < ApplicationController end else # Query is ambiguous, use both APIs and merge results - address_service = AddressClient.new(query) + address_service = AddressClient.new(query, { minmatch: 0.2 }) uprn_service = UprnClient.new(query) address_service.call diff --git a/app/services/address_client.rb b/app/services/address_client.rb index 81c8da7ed..20cf603fe 100644 --- a/app/services/address_client.rb +++ b/app/services/address_client.rb @@ -7,8 +7,9 @@ class AddressClient ADDRESS = "api.os.uk".freeze PATH = "/search/places/v1/find".freeze - def initialize(address) + def initialize(address, options = {}) @address = address + @options = options end def call @@ -43,8 +44,8 @@ private params = { query: address, key: ENV["OS_DATA_KEY"], - maxresults: 10, - minmatch: 0.4, + maxresults: @options[:maxresults] || 10, + minmatch: @options[:minmatch] || 0.4, } uri.query = URI.encode_www_form(params) uri.to_s