demarches-normaliennes/app/lib/recovery/exporter.rb
Martin f76e52cc97 tech(tache.recovery): ajoute une tache pour re-importer des dossiers venant d'un backup
Update app/lib/recovery/exporter.rb

Co-authored-by: Colin Darie <colin@darie.eu>
2023-05-16 14:49:36 +02:00

30 lines
1.2 KiB
Ruby

module Recovery
class Exporter
FILE_PATH = Rails.root.join('lib', 'data', 'export.dump')
attr_reader :dossiers, :file_path
def initialize(dossier_ids:, file_path: FILE_PATH)
dossier_with_data = Dossier.where(id: dossier_ids)
.preload(:user,
:individual,
:invites,
:traitements,
:transfer_logs,
commentaires: { piece_jointe_attachment: :blob },
avis: { introduction_file_attachment: :blob, piece_justificative_file_attachment: :blob },
dossier_operation_logs: { serialized_attachment: :blob },
attestation: { pdf_attachment: :blob },
justificatif_motivation_attachment: :blob,
etablissement: :exercices,
revision: :procedure)
@dossiers = DossierPreloader.new(dossier_with_data,
includes_for_dossier: [:geo_areas, etablissement: :exercices],
includes_for_etablissement: [:exercices]).all
@file_path = file_path
end
def dump
@file_path.binwrite(Marshal.dump(@dossiers))
end
end
end