fix refactor expire at

This commit is contained in:
Pete Matsyburka
2025-05-10 13:03:52 +03:00
parent 7b6fc7d06f
commit 050224a10d
13 changed files with 84 additions and 49 deletions
+3 -14
View File
@@ -59,11 +59,13 @@ module Submissions
def create_from_emails(template:, user:, emails:, source:, mark_as_sent: false, params: {})
preferences = Submitters.normalize_preferences(user.account, user, params)
expire_at = params[:expire_at].presence || Templates.build_default_expire_at(template)
parse_emails(emails, user).uniq.map do |email|
submission = template.submissions.new(created_by_user: user,
account_id: user.account_id,
source:,
expire_at: params[:expire_at].presence || build_default_expire_at(template),
expire_at:,
template_submitters: template.submitters)
submission.submitters.new(email: normalize_email(email),
@@ -208,17 +210,4 @@ module Submissions
Submissions::GenerateCombinedAttachment.call(submission.submitters.completed.order(:completed_at).last)
end
def build_default_expire_at(template)
default_expire_at_duration = template.preferences['default_expire_at_duration'].presence
default_expire_at = template.preferences['default_expire_at'].presence
return if default_expire_at_duration.blank?
if default_expire_at_duration == 'specified_date' && default_expire_at.present?
Time.zone.parse(default_expire_at)
elsif Template::EXPIRATION_DURATIONS[default_expire_at_duration]
Time.current.in_time_zone(template.account.timezone) + Template::EXPIRATION_DURATIONS[default_expire_at_duration]
end
end
end