Files
docuseal/app/controllers/submit_form_decline_controller.rb
T

36 lines
1.5 KiB
Ruby
Raw Normal View History

2024-08-21 09:22:59 +03:00
# frozen_string_literal: true
class SubmitFormDeclineController < ApplicationController
skip_before_action :authenticate_user!
skip_authorization_check
def create
submitter = Submitter.find_by!(slug: params[:submit_form_slug])
return redirect_to submit_form_path(submitter.slug) if submitter.declined_at? ||
submitter.completed_at? ||
submitter.submission.archived_at? ||
submitter.submission.expired? ||
2025-05-31 15:15:25 +03:00
submitter.submission.template&.archived_at?
2024-08-21 09:22:59 +03:00
ApplicationRecord.transaction do
submitter.update!(declined_at: Time.current)
SubmissionEvents.create_with_tracking_data(submitter, 'decline_form', request, { reason: params[:reason] })
end
user = submitter.submission.created_by_user || submitter.template.author
2024-10-29 16:44:07 +02:00
if user.user_configs.find_by(key: UserConfig::RECEIVE_DECLINED_EMAIL)&.value != false
SubmitterMailer.declined_email(submitter, user).deliver_later!
end
2024-11-01 15:35:02 +02:00
WebhookUrls.for_account_id(submitter.account_id, 'form.declined').each do |webhook_url|
SendFormDeclinedWebhookRequestJob.perform_async('submitter_id' => submitter.id,
'webhook_url_id' => webhook_url.id)
end
2024-08-21 09:22:59 +03:00
redirect_to submit_form_path(submitter.slug)
end
end