From 475ba0fa9df914cfc907abb0329202123c762d16 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Tue, 11 Feb 2025 13:15:38 +0000 Subject: [PATCH] Reuse AddressDataPresenter where appropriate --- app/controllers/address_search_controller.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/controllers/address_search_controller.rb b/app/controllers/address_search_controller.rb index 1e6ab3ea7..e0bca3d48 100644 --- a/app/controllers/address_search_controller.rb +++ b/app/controllers/address_search_controller.rb @@ -12,7 +12,8 @@ class AddressSearchController < ApplicationController if service.error.present? render json: { error: service.error }, status: :unprocessable_entity else - render json: [{ address: service.result["ADDRESS"], uprn: service.result["UPRN"] }] + presenter = AddressDataPresenter.new(service.result) + render json: [{ address: presenter.address, uprn: presenter.uprn }] end elsif query.match?(/[a-zA-Z]/) # Query contains letters, assume it's an address @@ -22,7 +23,11 @@ class AddressSearchController < ApplicationController if service.error.present? render json: { error: service.error }, status: :unprocessable_entity else - render json: service.result.map { |result| { address: result["ADDRESS"], uprn: result["UPRN"] } } + results = service.result.map do |result| + presenter = AddressDataPresenter.new(result) + { address: presenter.address, uprn: presenter.uprn } + end + render json: results end else # Query is ambiguous, use both APIs and merge results @@ -37,7 +42,11 @@ class AddressSearchController < ApplicationController if address_service.error.present? && uprn_service.error.present? render json: { error: "Address and UPRN are not recognised. Check the input." }, status: :unprocessable_entity else - render json: results.map { |result| { address: result["ADDRESS"], uprn: result["UPRN"] } } + formatted_results = results.map do |result| + presenter = AddressDataPresenter.new(result) + { address: presenter.address, uprn: presenter.uprn } + end + render json: formatted_results end end end