diff --git a/app/services/procedure_archive_service.rb b/app/services/procedure_archive_service.rb index 3fd4c7211..a0fc992b0 100644 --- a/app/services/procedure_archive_service.rb +++ b/app/services/procedure_archive_service.rb @@ -16,14 +16,6 @@ class ProcedureArchiveService end def collect_files_archive(archive, instructeur) - if Flipper.enabled?(:zip_using_binary, @procedure) - new_collect_files_archive(archive, instructeur) - else - old_collect_files_archive(archive, instructeur) - end - end - - def new_collect_files_archive(archive, instructeur) dossiers = Dossier.visible_by_administration .where(groupe_instructeur: archive.groupe_instructeurs) @@ -42,47 +34,6 @@ class ProcedureArchiveService InstructeurMailer.send_archive(instructeur, @procedure, archive).deliver_later end - def old_collect_files_archive(archive, instructeur) - dossiers = Dossier.visible_by_administration - .where(groupe_instructeur: archive.groupe_instructeurs) - - dossiers = if archive.time_span_type == 'everything' - dossiers.state_termine - else - dossiers.processed_in_month(archive.month) - end - - files = create_list_of_attachments(dossiers) - - tmp_file = Tempfile.new(['tc', '.zip']) - - Zip::OutputStream.open(tmp_file) do |zipfile| - bug_reports = '' - files.each do |attachment, pj_filename| - zipfile.put_next_entry("#{zip_root_folder}/#{pj_filename}") - begin - zipfile.puts(attachment.download) - rescue - bug_reports += "Impossible de récupérer le fichier #{pj_filename}\n" - end - end - if !bug_reports.empty? - zipfile.put_next_entry("#{zip_root_folder}/LISEZMOI.txt") - zipfile.puts(bug_reports) - end - end - - archive.file.attach( - io: File.open(tmp_file), - filename: archive.filename(@procedure), - # we don't want to run virus scanner on this file - metadata: { virus_scan_result: ActiveStorage::VirusScanner::SAFE } - ) - tmp_file.delete - archive.make_available! - InstructeurMailer.send_archive(instructeur, @procedure, archive).deliver_later - end - def self.procedure_files_size(procedure) dossiers_files_size(procedure.dossiers) end diff --git a/spec/services/procedure_archive_service_spec.rb b/spec/services/procedure_archive_service_spec.rb index 05776aee9..3a0bf698a 100644 --- a/spec/services/procedure_archive_service_spec.rb +++ b/spec/services/procedure_archive_service_spec.rb @@ -33,97 +33,7 @@ describe ProcedureArchiveService do end end - describe '#old_collect_files_archive' do - before do - create_dossier_for_month(year, month) - create_dossier_for_month(2020, month) - end - - after { Timecop.return } - - context 'for a specific month' do - let(:archive) { create(:archive, time_span_type: 'monthly', status: 'pending', month: date_month, groupe_instructeurs: groupe_instructeurs) } - let(:year) { 2021 } - let(:mailer) { double('mailer', deliver_later: true) } - - it 'collect files' do - expect(InstructeurMailer).to receive(:send_archive).and_return(mailer) - - service.collect_files_archive(archive, instructeur) - - archive.file.open do |f| - files = ZipTricks::FileReader.read_zip_structure(io: f) - expect(files.size).to be 2 - expect(files.first.filename).to include("export") - expect(files.last.filename).to include("attestation") - end - expect(archive.file.attached?).to be_truthy - end - - context 'with a missing file' do - let(:pj) do - PiecesJustificativesService::FakeAttachment.new( - file: StringIO.new('coucou'), - filename: "export-dossier.pdf", - name: 'pdf_export_for_instructeur', - id: 1, - created_at: Time.zone.now - ) - end - - let(:bad_pj) do - PiecesJustificativesService::FakeAttachment.new( - file: nil, - filename: "cni.png", - name: 'cni.png', - id: 2, - created_at: Time.zone.now - ) - end - - let(:documents) { [pj, bad_pj] } - before do - allow(PiecesJustificativesService).to receive(:liste_documents).and_return(documents) - end - - it 'collect files without raising exception' do - expect { service.collect_files_archive(archive, instructeur) }.not_to raise_exception - end - - it 'add bug report to archive' do - service.collect_files_archive(archive, instructeur) - - archive.file.open do |f| - files = ZipTricks::FileReader.read_zip_structure(io: f) - expect(files.size).to be 4 - expect(files.last.filename).to eq("procedure-#{procedure.id}/LISEZMOI.txt") - expect(extract(f, files.last)).to match(/Impossible de .*cni.*png/) - end - end - end - end - - context 'for all months' do - let(:archive) { create(:archive, time_span_type: 'everything', status: 'pending', groupe_instructeurs: groupe_instructeurs) } - let(:mailer) { double('mailer', deliver_later: true) } - - it 'collect files' do - expect(InstructeurMailer).to receive(:send_archive).and_return(mailer) - - service.collect_files_archive(archive, instructeur) - - archive = Archive.last - archive.file.open do |f| - files = ZipTricks::FileReader.read_zip_structure(io: f) - expect(files.size).to be 4 - end - expect(archive.file.attached?).to be_truthy - end - end - end - - describe '#new_collect_files_archive' do - before { Flipper.enable_actor(:zip_using_binary, procedure) } + describe '#collect_files_archive' do let!(:dossier) { create_dossier_for_month(year, month) } let!(:dossier_2020) { create_dossier_for_month(2020, month) }