Browse Source

feat: PR comment tweaks

pull/1850/head
natdeanlewissoftwire 3 years ago
parent
commit
b4c49cde25
  1. 7
      app/services/imports/sales_logs_field_import_service.rb
  2. 22
      lib/tasks/data_import_field.rake
  3. 23
      lib/tasks/sales_data_import_field.rake

7
app/services/imports/sales_logs_field_import_service.rb

@ -43,10 +43,9 @@ module Imports
if record.owning_organisation_id.present? if record.owning_organisation_id.present?
@logger.info("sales log #{record.id} has a value for owning_organisation_id, skipping update") @logger.info("sales log #{record.id} has a value for owning_organisation_id, skipping update")
else else
old_owning_organisation_id = safe_string_as_integer(xml_doc, "OWNINGORGID") owning_organisation_id = find_organisation_id(xml_doc, "OWNINGORGID")
new_owning_organisation_id = Organisation.find_by(old_visible_id: old_owning_organisation_id).id record.update!(owning_organisation_id:)
record.update!(owning_organisation_id: new_owning_organisation_id) @logger.info("sales log #{record.id}'s owning_organisation_id value has been set to #{owning_organisation_id}")
@logger.info("sales log #{record.id}'s owning_organisation_id value has been set to #{new_owning_organisation_id}")
end end
else else
@logger.warn("sales log with old id #{old_id} not found") @logger.warn("sales log with old id #{old_id} not found")

22
lib/tasks/data_import_field.rake

@ -20,4 +20,26 @@ namespace :core do
raise "Field #{field} cannot be updated by data_import_field" raise "Field #{field} cannot be updated by data_import_field"
end end
end end
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 end

23
lib/tasks/sales_data_import_field.rake

@ -1,23 +0,0 @@
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