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_attachments: :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_champ: [: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