Ran for less than 5 seconds, finished .
# frozen_string_literal: true
class Maintenance::PopulateCountryDefaultsTask < MaintenanceTasks::Task
attr_reader :country
csv_collection
def process(row)
row.to_h.symbolize_keys => { mbo_name:, gds_name:, country_code:, country_name: }
process_country(country_code, country_name)
process_default_mbo(mbo_name) if mbo_name.present?
process_default_gds(gds_name) if gds_name.present?
end
private
def process_country(country_code, country_name)
@country = Country.find_or_initialize_by(code: country_code.upcase.strip)
return unless country.new_record? && country_name.present?
country.display_name = country_name
country.save!
end
def process_default_mbo(mbo_name)
normalized = mbo_name.to_s.strip.upcase
return if DefaultMboToCountry.exists?(default_mbo: normalized, country:)
return unless MboProfiles::MidBackOffice.list.include?(normalized)
country.default_mbo = normalized
country.save!
end
def process_default_gds(gds_name)
country.default_gds = Gds.find_or_create_by!(name: gds_name.downcase.strip)
country.save!
end
end
Processed 104 out of 104 items (100%).
Ran for less than 5 seconds, finished .
Processed 102 out of 102 items (100%).
Ran for less than 5 seconds, finished .
Processed 102 out of 102 items (100%).
Ran for less than 5 seconds, finished .
Processed 102 out of 102 items (100%).
Ran for less than 5 seconds, finished .
Processed 102 out of 102 items (100%).
Ran for less than 10 seconds, finished .