Files
nairobi/app/models/signature.rb
2016-12-20 18:00:36 +01:00

59 lines
1.1 KiB
Ruby

class Signature < ActiveRecord::Base
belongs_to :signature_sheet
belongs_to :user
validates :document_number, presence: true
validates :signature_sheet, presence: true
scope :verified, -> { where(verified: true) }
scope :unverified, -> { where(verified: false) }
delegate :signable, to: :signature_sheet
before_save :verify
def verify
if verified?
assign_vote
self.verified = true
end
end
def verified?
user_exists? || in_census?
end
def assign_vote
if user_exists?
assign_vote_to_user
else
create_user
assign_vote_to_user
end
end
def assign_vote_to_user
signable.register_vote(user, "yes", "signature")
end
def user_exists?
self.user = User.where(document_number: document_number).first
self.user.present?
end
def create_user
user = User.where(document_number: document_number, erased_at: Time.now).create
end
def in_census?
document_types.any? do |document_type|
CensusApi.new.call(document_type, document_number).valid?
end
end
def document_types
%w(1 2 3 4)
end
end