30 lines
664 B
Ruby
30 lines
664 B
Ruby
class SignatoriesController < ApplicationController
|
|
before_action :fetch_signatory
|
|
before_action :check_token, only: %i[show cancel cancel_confirm]
|
|
|
|
def show
|
|
unless @signatory.signed_at
|
|
@signatory.update! ip: request.remote_ip, user_agent: request.user_agent, signed_at: DateTime.now
|
|
SignatoryMailer.with(signatory: @signatory).signed.deliver_now!
|
|
end
|
|
end
|
|
|
|
def cancel
|
|
end
|
|
|
|
def cancel_confirm
|
|
@signatory.destroy!
|
|
end
|
|
|
|
private
|
|
|
|
def fetch_signatory
|
|
@signatory = Signatory.find params[:id]
|
|
@letter = @signatory.letter
|
|
end
|
|
|
|
def check_token
|
|
token = params[:token]
|
|
head :forbidden unless !token.nil? and @signatory.token == token
|
|
end
|
|
end
|