From 183d4ac8aadefe434c581bf35c75cb73caeb4aa6 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Thu, 17 Aug 2023 13:47:06 +0100 Subject: [PATCH] feat: split sales and lettings rake tasks --- lib/tasks/data_import_field.rake | 14 +++++--------- lib/tasks/sales_data_import_field.rake | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 lib/tasks/sales_data_import_field.rake diff --git a/lib/tasks/data_import_field.rake b/lib/tasks/data_import_field.rake index e31927ffa..42fa12c41 100644 --- a/lib/tasks/data_import_field.rake +++ b/lib/tasks/data_import_field.rake @@ -1,23 +1,19 @@ namespace :core do - desc "Update database field from data XMLs provided by Softwire" - task :data_import_field, %i[field path] => :environment do |_task, args| + desc "Update lettings log database field from data XMLs provided by Softwire" + task :lettings_data_import_field, %i[field path] => :environment do |_task, args| field = args[:field] path = args[:path] - raise "Usage: rake core:data_import_field['field','path/to/xml_files']" if path.blank? || field.blank? + raise "Usage: rake core:lettings_data_import_field['field','path/to/xml_files']" if path.blank? || field.blank? # We only allow a reduced list of known fields to be updatable case field - when "tenancycode", "major_repairs", "lettings_allocation", "offered", "owning_organisation_id" + when "tenancycode", "major_repairs", "lettings_allocation", "offered" s3_service = Storage::S3Service.new(PlatformHelper.is_paas? ? Configuration::PaasConfigurationService.new : Configuration::EnvConfigurationService.new, ENV["IMPORT_PAAS_INSTANCE"]) archive_io = s3_service.get_file_io(path) archive_service = Storage::ArchiveService.new(archive_io) if archive_service.folder_present?("logs") Rails.logger.info("Start importing field from folder logs") - if field == "owning_organisation_id" - Imports::SalesLogsFieldImportService.new(archive_service).update_field(field, "logs") - else - Imports::LettingsLogsFieldImportService.new(archive_service).update_field(field, "logs") - end + Imports::LettingsLogsFieldImportService.new(archive_service).update_field(field, "logs") Rails.logger.info("Imported") end else diff --git a/lib/tasks/sales_data_import_field.rake b/lib/tasks/sales_data_import_field.rake new file mode 100644 index 000000000..7aef76e5f --- /dev/null +++ b/lib/tasks/sales_data_import_field.rake @@ -0,0 +1,23 @@ +namespace :core do + desc "Update sales log database field from data XMLs provided by Softwire" + task :sales_data_import_field, %i[field path] => :environment do |_task, args| + field = args[:field] + path = args[:path] + raise "Usage: rake core:sales_data_import_field['field','path/to/xml_files']" if path.blank? || field.blank? + + # We only allow a reduced list of known fields to be updatable + case field + when "owning_organisation_id" + s3_service = Storage::S3Service.new(PlatformHelper.is_paas? ? Configuration::PaasConfigurationService.new : Configuration::EnvConfigurationService.new, ENV["IMPORT_PAAS_INSTANCE"]) + archive_io = s3_service.get_file_io(path) + archive_service = Storage::ArchiveService.new(archive_io) + if archive_service.folder_present?("logs") + Rails.logger.info("Start importing field from folder logs") + Imports::SalesLogsFieldImportService.new(archive_service).update_field(field, "logs") + Rails.logger.info("Imported") + end + else + raise "Field #{field} cannot be updated by data_import_field" + end + end +end