24 lines
715 B
Ruby
24 lines
715 B
Ruby
class CommentaireService
|
|
class << self
|
|
def build(sender, dossier, params)
|
|
case sender
|
|
when User
|
|
params[:user] = sender
|
|
when Gestionnaire
|
|
params[:gestionnaire] = sender
|
|
end
|
|
|
|
build_with_email(sender.email, dossier, params)
|
|
end
|
|
|
|
def build_with_email(email, dossier, params)
|
|
attributes = params.merge(email: email, dossier: dossier)
|
|
# For some reason ActiveStorage trows an error in tests if we passe an empty string here.
|
|
# I suspect it could be resolved in rails 6 by using explicit `attach()`
|
|
if attributes[:piece_jointe].blank?
|
|
attributes.delete(:piece_jointe)
|
|
end
|
|
Commentaire.new(attributes)
|
|
end
|
|
end
|
|
end
|