correctif(data.kc): re-import les données kc

This commit is contained in:
Martin 2023-05-15 11:41:38 +02:00 committed by LeSim
parent 174b0edaa1
commit e9115b10b5
7 changed files with 143 additions and 0 deletions

View file

@ -0,0 +1,21 @@
module Recovery
class Exporter
FILE_PATH = Rails.root.join('lib', 'data', 'export.dump')
attr_reader :dossiers
def initialize(dossier_ids:, file_path: FILE_PATH)
dossier_with_data = Dossier.where(id: dossier_ids)
.preload(:user,
:individual,
:etablissement,
revision: :procedure)
@dossiers = DossierPreloader.new(dossier_with_data).all
@file_path = file_path
end
def dump
File.open(@file_path, 'wb') { _1.write(Marshal.dump(@dossiers)) }
end
end
end

View file

@ -0,0 +1,17 @@
module Recovery
class Importer
attr_reader :dossiers
def initialize(file_path: Recovery::Exporter::FILE_PATH)
@dossiers = Marshal.load(File.read(file_path))
end
def load
@dossiers.map do |dossier|
dossier.instance_variable_set :@new_record, true
dossier.save!
end
end
end
end

View file

@ -0,0 +1,33 @@
module Recovery
class LifeCycle
def initialize(dossier_ids:)
@dossier_ids = dossier_ids
end
def load_export_destroy_and_import
export_dossiers
destroy_dossiers
import_dossiers
end
def exporter
@exporter ||= Recovery::Exporter.new(dossier_ids: @dossier_ids)
end
def importer
@importer ||= Importer.new()
end
def export_dossiers
exporter.dump
end
def destroy_dossiers
Dossier.where(id: @dossier_ids).destroy_all
end
def import_dossiers
importer.load
end
end
end