Files
docuseal/app/controllers/start_form_controller.rb
T

52 lines
1.1 KiB
Ruby
Raw Normal View History

2023-05-21 17:59:36 +03:00
# frozen_string_literal: true
2023-05-31 23:19:20 +03:00
class StartFormController < ApplicationController
layout 'form'
2023-05-21 17:59:36 +03:00
skip_before_action :authenticate_user!
2023-05-31 23:19:20 +03:00
before_action :load_template
2023-05-21 17:59:36 +03:00
def show
2023-05-31 23:19:20 +03:00
@submission = @template.submissions.new
2023-05-21 17:59:36 +03:00
end
def update
2023-05-31 23:19:20 +03:00
@submission = @template.submissions.find_or_initialize_by(
2023-05-21 17:59:36 +03:00
deleted_at: nil, **submission_params
)
if @submission.completed_at?
2023-05-31 23:19:20 +03:00
redirect_to start_form_completed_path(@template.slug, email: submission_params[:email])
2023-05-21 17:59:36 +03:00
else
@submission.assign_attributes(
opened_at: Time.current,
ip: request.remote_ip,
ua: request.user_agent
)
if @submission.save
2023-05-31 23:19:20 +03:00
redirect_to submit_form_path(@submission.slug)
2023-05-21 17:59:36 +03:00
else
render :show
end
end
end
def completed
2023-05-31 23:19:20 +03:00
@submission = @template.submissions.find_by(email: params[:email])
2023-05-21 17:59:36 +03:00
end
private
def submission_params
params.require(:submission).permit(:email)
end
2023-05-31 23:19:20 +03:00
def load_template
slug = params[:slug] || params[:start_template_slug]
2023-05-21 17:59:36 +03:00
2023-05-31 23:19:20 +03:00
@template = Template.find_by!(slug:)
2023-05-21 17:59:36 +03:00
end
end