allows querying for a proposal's votes
This commit is contained in:
@@ -1,14 +1,2 @@
|
|||||||
class Vote < ActsAsVotable::Vote
|
class Vote < ActsAsVotable::Vote
|
||||||
|
|
||||||
include Graphqlable
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,17 @@
|
|||||||
ActsAsVotable::Vote.class_eval do
|
ActsAsVotable::Vote.class_eval do
|
||||||
|
include Graphqlable
|
||||||
|
|
||||||
belongs_to :signature
|
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)
|
def self.for_debates(debates)
|
||||||
where(votable_type: 'Debate', votable_id: debates)
|
where(votable_type: 'Debate', votable_id: debates)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -218,6 +218,16 @@ describe 'ConsulSchema' do
|
|||||||
expect(received_tags).to match_array ['Parks', 'Health']
|
expect(received_tags).to match_array ['Parks', 'Health']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns nested votes for a proposal' do
|
||||||
|
proposal = create(:proposal)
|
||||||
|
2.times { create(:vote, votable: proposal) }
|
||||||
|
|
||||||
|
response = execute("{ proposal(id: #{proposal.id}) { votes_for { edges { node { public_created_at } } } } }")
|
||||||
|
|
||||||
|
votes = response["data"]["proposal"]["votes_for"]["edges"]
|
||||||
|
expect(votes.count).to eq(2)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'Debates' do
|
describe 'Debates' do
|
||||||
|
|||||||
Reference in New Issue
Block a user