Browse Source

some minor refactoring

remove methods from child class that replicate methods on the parent class
tidy up check for nil
remove gubbins and inline method body given only used once
pull/1744/head
Arthur Campbell 3 years ago
parent
commit
c014b01589
  1. 26
      app/services/imports/lettings_logs_field_import_service.rb
  2. 6
      app/services/imports/logs_import_service.rb
  3. 8
      spec/services/imports/lettings_logs_field_import_service_spec.rb

26
app/services/imports/lettings_logs_field_import_service.rb

@ -110,31 +110,5 @@ module Imports
@logger.warn("Could not find record matching legacy ID #{old_id}") @logger.warn("Could not find record matching legacy ID #{old_id}")
end end
end end
def compose_date(xml_doc, day_str, month_str, year_str)
day = Integer(field_value(xml_doc, "xmlns", day_str), exception: false)
month = Integer(field_value(xml_doc, "xmlns", month_str), exception: false)
year = Integer(field_value(xml_doc, "xmlns", year_str), exception: false)
if day.nil? || month.nil? || year.nil?
nil
else
Time.zone.local(year, month, day)
end
end
def string_or_nil(xml_doc, attribute)
str = field_value(xml_doc, "xmlns", attribute)
str.presence
end
# Unsafe: A string that has more than just the integer value
def unsafe_string_as_integer(xml_doc, attribute)
str = string_or_nil(xml_doc, attribute)
if str.nil?
nil
else
str.to_i
end
end
end end
end end

6
app/services/imports/logs_import_service.rb

@ -11,11 +11,7 @@ module Imports
# Unsafe: A string that has more than just the integer value # Unsafe: A string that has more than just the integer value
def unsafe_string_as_integer(xml_doc, attribute) def unsafe_string_as_integer(xml_doc, attribute)
str = string_or_nil(xml_doc, attribute) str = string_or_nil(xml_doc, attribute)
if str.nil? str&.to_i
nil
else
str.to_i
end
end end
def compose_date(xml_doc, day_str, month_str, year_str) def compose_date(xml_doc, day_str, month_str, year_str)

8
spec/services/imports/lettings_logs_field_import_service_spec.rb

@ -10,7 +10,7 @@ RSpec.describe Imports::LettingsLogsFieldImportService do
let(:fixture_directory) { "spec/fixtures/imports/logs" } let(:fixture_directory) { "spec/fixtures/imports/logs" }
let(:lettings_log_id) { "0ead17cb-1668-442d-898c-0d52879ff592" } let(:lettings_log_id) { "0ead17cb-1668-442d-898c-0d52879ff592" }
let(:lettings_log_file) { open_file(fixture_directory, lettings_log_id) } let(:lettings_log_file) { File.open("#{fixture_directory}/#{lettings_log_id}.xml") }
let(:lettings_log_xml) { Nokogiri::XML(lettings_log_file) } let(:lettings_log_xml) { Nokogiri::XML(lettings_log_file) }
let(:remote_folder) { "lettings_logs" } let(:remote_folder) { "lettings_logs" }
let(:old_user_id) { "c3061a2e6ea0b702e6f6210d5c52d2a92612d2aa" } let(:old_user_id) { "c3061a2e6ea0b702e6f6210d5c52d2a92612d2aa" }
@ -21,12 +21,6 @@ RSpec.describe Imports::LettingsLogsFieldImportService do
Singleton.__init__(FormHandler) Singleton.__init__(FormHandler)
example.run example.run
end end
Timecop.return
Singleton.__init__(FormHandler)
end
def open_file(directory, filename)
File.open("#{directory}/#{filename}.xml")
end end
before do before do

Loading…
Cancel
Save