From 550e4cc7b9ae9910f329ae15527ae84cff2d4cd0 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 27 Jan 2016 15:48:01 +0200 Subject: [PATCH] Story#104525318 - Contact import can handle legal documents import --- lib/tasks/import_history.rake | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/tasks/import_history.rake b/lib/tasks/import_history.rake index ce96d5538..f21111322 100644 --- a/lib/tasks/import_history.rake +++ b/lib/tasks/import_history.rake @@ -35,6 +35,8 @@ namespace :import do desc 'Import contact history' task history_contacts: :environment do + throw 'no config set ENV[legacy_legal_documents_dir]' unless ENV['legacy_legal_documents_dir'] + old_ids = Legacy::ContactHistory.uniq.pluck(:id) old_size = old_ids.size parallel_import(old_ids) do |legacy_contact_id, process_idx| @@ -88,6 +90,21 @@ namespace :import do obj_his = Legacy::ObjectHistory.find_by(historyid: responder.historyid) user = Legacy::Domain.new_api_user_cached(obj_his.upid || obj_his.clid) + + files = Legacy::File.for_history(responder.historyid).map do |leg_file| + file_dir = leg_file.path.sub(/\/[0-9]+\z/, '') + path = "#{ENV['legal_documents_dir']}/#{leg_file.path}_#{leg_file.name}" + + FileUtils.mkdir_p("#{ENV['legal_documents_dir']}/#{file_dir}", mode: 0775) + FileUtils.mv("#{ENV['legacy_legal_documents_dir']}/#{leg_file.path}_#{leg_file.name}", path) + LegalDocument.create!(documentable_type: ::Contact.to_s, + documentable_id: contact.id, + document_type: leg_file.name.to_s.split(".").last, + path: path, + created_at: leg_file.crdate, + updated_at: leg_file.crdate) + end + hash = { item_type: Contact.to_s, item_id: contact.id, @@ -95,7 +112,8 @@ namespace :import do whodunnit: user.try(:id), object: last_changes, object_changes: changes, - created_at: time + created_at: time, + children: {legacy_documents: files.map(&:id)} } data << hash