feat(file retrieval): add dossier_transfer_log

This commit is contained in:
simon lehericey 2023-12-19 16:17:21 +01:00
parent 84398b147d
commit 7e6792c616
2 changed files with 17 additions and 3 deletions

View file

@ -16,12 +16,22 @@ class RecoveryService
recoverable_procedure_ids = recoverable_procedures(previous_user: previous_user, siret: siret) recoverable_procedure_ids = recoverable_procedures(previous_user: previous_user, siret: siret)
.map { _1[:procedure_id] } .map { _1[:procedure_id] }
procedure_ids dossiers = procedure_ids
.select { |id| id.in?(recoverable_procedure_ids) } .filter { |id| id.in?(recoverable_procedure_ids) }
.then do |p_ids| .then do |p_ids|
previous_user.dossiers.joins(:procedure) previous_user.dossiers.joins(:procedure)
.where(procedure: { id: p_ids }) .where(procedure: { id: p_ids })
.update_all(user_id: next_user.id) end
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
end end

View file

@ -70,6 +70,10 @@ RSpec.describe RecoveryService, type: :service do
it 'moves the files to the next user' do it 'moves the files to the next user' do
subject subject
expect(next_user.dossiers.count).to eq(3) 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 end
end end