diff --git a/app/controllers/start_form_controller.rb b/app/controllers/start_form_controller.rb index 080b9807..c79535ec 100644 --- a/app/controllers/start_form_controller.rb +++ b/app/controllers/start_form_controller.rb @@ -43,9 +43,11 @@ class StartFormController < ApplicationController if @submitter.save if is_new_record - WebhookUrls.for_account_id(@submitter.account_id, 'submission.created').each do |webhook_url| - SendSubmissionCreatedWebhookRequestJob.perform_async('submission_id' => @submitter.submission_id, - 'webhook_url_id' => webhook_url.id) + enqueue_submission_create_webhooks(@submitter) + + if @submitter.submission.expire_at? + ProcessSubmissionExpiredJob.perform_at(@submitter.submission.expire_at, + 'submission_id' => @submitter.submission_id) end end @@ -64,6 +66,13 @@ class StartFormController < ApplicationController private + def enqueue_submission_create_webhooks(submitter) + WebhookUrls.for_account_id(submitter.account_id, 'submission.created').each do |webhook_url| + SendSubmissionCreatedWebhookRequestJob.perform_async('submission_id' => submitter.submission_id, + 'webhook_url_id' => webhook_url.id) + end + end + def find_or_initialize_submitter(template, submitter_params) Submitter.where(submission: template.submissions.where(expire_at: Time.current..) .or(template.submissions.where(expire_at: nil)).where(archived_at: nil)) diff --git a/lib/submissions.rb b/lib/submissions.rb index ada1d320..cf6ef851 100644 --- a/lib/submissions.rb +++ b/lib/submissions.rb @@ -74,7 +74,13 @@ module Submissions preferences:, sent_at: mark_as_sent ? Time.current : nil) - submission.tap(&:save!) + submission.save! + + if submission.expire_at? + ProcessSubmissionExpiredJob.perform_at(submission.expire_at, 'submission_id' => submission.id) + end + + submission end end