Browse Source

feat: split sales and lettings rake tasks

pull/1850/head
natdeanlewissoftwire 3 years ago
parent
commit
183d4ac8aa
  1. 14
      lib/tasks/data_import_field.rake
  2. 23
      lib/tasks/sales_data_import_field.rake

14
lib/tasks/data_import_field.rake

@ -1,23 +1,19 @@
namespace :core do namespace :core do
desc "Update database field from data XMLs provided by Softwire" desc "Update lettings log database field from data XMLs provided by Softwire"
task :data_import_field, %i[field path] => :environment do |_task, args| task :lettings_data_import_field, %i[field path] => :environment do |_task, args|
field = args[:field] field = args[:field]
path = args[:path] 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 # We only allow a reduced list of known fields to be updatable
case field 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"]) 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_io = s3_service.get_file_io(path)
archive_service = Storage::ArchiveService.new(archive_io) archive_service = Storage::ArchiveService.new(archive_io)
if archive_service.folder_present?("logs") if archive_service.folder_present?("logs")
Rails.logger.info("Start importing field from folder logs") Rails.logger.info("Start importing field from folder logs")
if field == "owning_organisation_id" Imports::LettingsLogsFieldImportService.new(archive_service).update_field(field, "logs")
Imports::SalesLogsFieldImportService.new(archive_service).update_field(field, "logs")
else
Imports::LettingsLogsFieldImportService.new(archive_service).update_field(field, "logs")
end
Rails.logger.info("Imported") Rails.logger.info("Imported")
end end
else else

23
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
Loading…
Cancel
Save