44 lines
1.3 KiB
Ruby
44 lines
1.3 KiB
Ruby
class Public::AmendmentsController < Public::BaseController
|
|
skip_after_action :verify_authorized, :verify_policy_scoped
|
|
before_action :set_account, :set_project, :set_contract_template, :set_release
|
|
|
|
def new
|
|
if @release.amendment_signed?
|
|
render :create, locals: { already_signed: true }
|
|
end
|
|
end
|
|
|
|
def create
|
|
@release.amendment_signer_name = release_params[:amendment_signer_name]
|
|
@release.amendment_signature_base64 = release_params[:amendment_signature_base64]
|
|
render :new unless @release.save
|
|
end
|
|
|
|
private
|
|
|
|
def release_params
|
|
release_type = @contract_template.release_type
|
|
param_name = "#{release_type}_release".to_s
|
|
params.require(param_name).permit(:amendment_signer_name, :amendment_signature_base64)
|
|
end
|
|
|
|
def set_release
|
|
release_type = @contract_template.release_type
|
|
param_name = "#{release_type}_release_id".to_s
|
|
release_id = params[param_name]
|
|
|
|
@release = @contract_template.releases.find(release_id)
|
|
end
|
|
|
|
def set_contract_template
|
|
@contract_template = @project.contract_templates.find(params[:contract_template_id])
|
|
end
|
|
|
|
def set_project
|
|
@project = @account.projects.find(params[:project_id])
|
|
end
|
|
|
|
def set_account
|
|
@account = Account.find_by(slug: params[:account_id])
|
|
end
|
|
end |