fixup! tech(refactor): extract clone logic inside its own class

This commit is contained in:
Martin 2024-02-16 11:20:08 +01:00
parent 32e8f34511
commit 2200310877

View file

@ -2,25 +2,29 @@ class ClonePiecesJustificativesService
def self.clone_attachments(original, kopy) def self.clone_attachments(original, kopy)
case original case original
when Champs::PieceJustificativeChamp, Champs::TitreIdentiteChamp when Champs::PieceJustificativeChamp, Champs::TitreIdentiteChamp
original.piece_justificative_file.attachments.each do |attachment| clone_many_attachments(original, kopy, :piece_justificative_file)
kopy.piece_justificative_file.attach(attachment.blob)
end
when TypeDeChamp when TypeDeChamp
clone_attachment(original, kopy, :piece_justificative_template) clone_one_attachment(original, kopy, :piece_justificative_template)
when Procedure when Procedure
clone_attachment(original, kopy, :logo) clone_one_attachment(original, kopy, :logo)
clone_attachment(original, kopy, :notice) clone_one_attachment(original, kopy, :notice)
clone_attachment(original, kopy, :deliberation) clone_one_attachment(original, kopy, :deliberation)
when AttestationTemplate when AttestationTemplate
clone_attachment(original, kopy, :logo) clone_one_attachment(original, kopy, :logo)
clone_attachment(original, kopy, :signature) clone_one_attachment(original, kopy, :signature)
when Etablissement when Etablissement
clone_attachment(original, kopy, :entreprise_attestation_sociale) clone_one_attachment(original, kopy, :entreprise_attestation_sociale)
clone_attachment(original, kopy, :entreprise_attestation_fiscale) clone_one_attachment(original, kopy, :entreprise_attestation_fiscale)
end end
end end
def self.clone_attachment(original, kopy, attachment_name) def self.clone_many_attachments(original, kopy, attachments_name)
original.public_send(attachments_name).attachments.each do |attachment|
kopy.public_send(attachments_name).attach(attachment.blob)
end
end
def self.clone_one_attachment(original, kopy, attachment_name)
attachment = original.public_send(attachment_name) attachment = original.public_send(attachment_name)
if attachment.attached? if attachment.attached?
kopy.public_send(attachment_name).attach(attachment.blob) kopy.public_send(attachment_name).attach(attachment.blob)