Files
grecia/config/initializers/vote_extensions.rb
2017-12-15 19:21:02 +01:00

40 lines
1.1 KiB
Ruby

ActsAsVotable::Vote.class_eval do
include Graphqlable
belongs_to :signature
scope :public_for_api, -> do
where(%{(votes.votable_type = 'Debate' and votes.votable_id in (?)) or
(votes.votable_type = 'Proposal' and votes.votable_id in (?)) or
(votes.votable_type = 'Comment' and votes.votable_id in (?))},
Debate.public_for_api.pluck(:id),
Proposal.public_for_api.pluck(:id),
Comment.public_for_api.pluck(:id))
end
def self.for_debates(debates)
where(votable_type: 'Debate', votable_id: debates)
end
def self.for_proposals(proposals)
where(votable_type: 'Proposal', votable_id: proposals)
end
def self.for_legislation_proposals(proposals)
where(votable_type: 'Legislation::Proposal', votable_id: proposals)
end
def self.for_spending_proposals(spending_proposals)
where(votable_type: 'SpendingProposal', votable_id: spending_proposals)
end
def self.for_budget_investments(budget_investments)
where(votable_type: 'Budget::Investment', votable_id: budget_investments)
end
def value
vote_flag
end
end