Compare commits

...

1 Commits

Author SHA1 Message Date
Samuel Young 298b4093a1 CLDC-4078: Optimise OS API queries for records that are validated a lot 2 weeks ago
  1. 2
      app/models/lettings_log.rb
  2. 12
      app/models/log.rb
  3. 2
      app/models/sales_log.rb

2
app/models/lettings_log.rb

@ -915,6 +915,7 @@ private
def should_process_uprn_change?
return unless uprn
return unless startdate
return if skip_uprn_lookup
uprn_changed? || startdate_changed?
end
@ -923,6 +924,7 @@ private
return unless uprn_selection || select_best_address_match
return unless startdate
return unless form.start_year_2024_or_later?
return if skip_address_lookup
if select_best_address_match
address_line1_input.present? && postcode_full_input.present?

12
app/models/log.rb

@ -57,7 +57,7 @@ class Log < ApplicationRecord
scope :filter_by_owning_organisation_text_search, ->(param, _user) { where(owning_organisation: Organisation.search_by(param)) }
scope :filter_by_managing_organisation_text_search, ->(param, _user) { where(managing_organisation: Organisation.search_by(param)) }
attr_accessor :skip_update_status, :skip_update_uprn_confirmed, :select_best_address_match, :skip_dpo_validation
attr_accessor :skip_update_status, :skip_update_uprn_confirmed, :select_best_address_match, :skip_dpo_validation, :skip_uprn_lookup, :skip_address_lookup
delegate :present?, to: :address_options, prefix: true
@ -74,6 +74,9 @@ class Log < ApplicationRecord
presenter = UprnDataPresenter.new(service.result)
# the address for this uprn is already known, skip further lookups for this object
self.skip_uprn_lookup = true if address_line1 == presenter.address_line1 && address_line2 == presenter.address_line2 && town_or_city == presenter.town_or_city && postcode_full == presenter.postcode
self.uprn_known = 1
self.uprn_selection = uprn
self.address_line1 = presenter.address_line1
@ -98,9 +101,14 @@ class Log < ApplicationRecord
presenter = AddressDataPresenter.new(service.result.first)
os_match_threshold_for_bulk_upload = 0.7
if presenter.match >= os_match_threshold_for_bulk_upload
# the address for this uprn is already known, skip further lookups for this object
self.skip_address_lookup = true if uprn_selection == presenter.uprn
self.uprn_selection = presenter.uprn
else
select_manual_address_entry!
# this uprn cannot be used for lookup
self.skip_address_lookup = true
return nil
end
end
@ -119,7 +127,7 @@ class Log < ApplicationRecord
self.uprn = uprn_selection
self.uprn_confirmed = 1
self.skip_update_uprn_confirmed = true
process_uprn_change!
process_uprn_change! unless skip_uprn_lookup
end
end
end

2
app/models/sales_log.rb

@ -435,6 +435,7 @@ class SalesLog < Log
def should_process_uprn_change?
return unless uprn
return unless saledate
return if skip_uprn_lookup
uprn_changed? || saledate_changed?
end
@ -443,6 +444,7 @@ class SalesLog < Log
return unless uprn_selection || select_best_address_match
return unless saledate
return unless form.start_year_2024_or_later?
return if skip_address_lookup
if select_best_address_match
address_line1_input.present? && postcode_full_input.present?

Loading…
Cancel
Save