From 29bfbea5252df75b81c78cc4629da2dbc4e4e677 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Tue, 25 Feb 2025 09:15:55 +0000 Subject: [PATCH] Reduce min match for address search --- app/controllers/address_search_controller.rb | 4 ++-- app/services/address_client.rb | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) 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