implement amendment signing
This commit is contained in:
44
app/controllers/public/amendments_controller.rb
Normal file
44
app/controllers/public/amendments_controller.rb
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
Reference in New Issue
Block a user