diff --git a/app/services/recovery_service.rb b/app/services/recovery_service.rb index de064b889..9efa4c6e5 100644 --- a/app/services/recovery_service.rb +++ b/app/services/recovery_service.rb @@ -16,12 +16,22 @@ class RecoveryService recoverable_procedure_ids = recoverable_procedures(previous_user: previous_user, siret: siret) .map { _1[:procedure_id] } - procedure_ids - .select { |id| id.in?(recoverable_procedure_ids) } + dossiers = procedure_ids + .filter { |id| id.in?(recoverable_procedure_ids) } .then do |p_ids| previous_user.dossiers.joins(:procedure) .where(procedure: { id: p_ids }) - .update_all(user_id: next_user.id) end + + dossiers.pluck(:id).map do |id| + { + dossier_id: id, + from: previous_user.email, + from_support: false, + to: next_user.email + } + end.then { |array| DossierTransferLog.create(array) } + + dossiers.update_all(user_id: next_user.id) end end diff --git a/spec/services/recovery_service_spec.rb b/spec/services/recovery_service_spec.rb index f37582529..15e83c6f1 100644 --- a/spec/services/recovery_service_spec.rb +++ b/spec/services/recovery_service_spec.rb @@ -70,6 +70,10 @@ RSpec.describe RecoveryService, type: :service do it 'moves the files to the next user' do subject expect(next_user.dossiers.count).to eq(3) + + dossier_transfer_log = next_user.dossiers.first.transfer_logs.first + expect(dossier_transfer_log.from).to eq(previous_user.email) + expect(dossier_transfer_log.to).to eq(next_user.email) end end end